use MooseX::Declare;
use Moose::Autobox;
-class Gitalist::Git::Object with Gitalist::Serializeable {
+class Gitalist::Git::Object {
use MooseX::Types::Moose qw/Str Int Bool Maybe ArrayRef/;
use MooseX::Types::Common::String qw/NonEmptySimpleStr/;
+ with 'Gitalist::Serializeable';
+
# repository and sha1 are required initargs
has repository => ( isa => 'Gitalist::Git::Repository',
required => 1,
required => 1,
is => 'ro',
lazy_build => 1,
- handles => [ 'content',
- ],
+ handles => [ 'content' ],
+ traits => [qw/ DoNotSerialize /],
);
# objects can't determine their mode or filename
# FIXME - Should not be here!
$c->stash->{Commit} = $c->stash->{Repository}->get_object_or_head($sha1part)
or $c->detach('/error404', "Couldn't find a object for '$sha1part' in XXXX!");
+ $c->stash->{data} = $c->stash->{Commit};
}
sub diff : Chained('find') CaptureArgs(0) {}
'description' => 'some test repository'
};
+$res = request(GET 'http://localhost/repo1/3f7567c7bdf7e7ebf410926493b92d398333116e/commit', 'Content-Type' => 'application/json');
+is $res->code, 200;
+$data = $j->decode($res->content);
+is ref($data), 'HASH';
+delete $data->{repository}{owner}
+ if $data && exists $data->{repository}{owner};
+is_deeply $data, {
+ 'repository' => {
+ 'is_bare' => 1,
+ '__CLASS__' => 'Gitalist::Git::Repository',
+ 'last_change' => '2009-11-12T19:00:34Z',
+ 'name' => 'repo1',
+ 'description' => 'some test repository'
+ },
+ '__CLASS__' => 'Gitalist::Git::Object::Commit',
+ 'sha1' => '3f7567c7bdf7e7ebf410926493b92d398333116e',
+ 'mode' => 0,
+ 'type' => 'commit',
+ 'modestr' => '----------',
+ 'size' => '218'
+};
+
done_testing;