From: Dan Brook Date: Tue, 29 Jun 2010 09:00:08 +0000 (+0100) Subject: Revert "Merge remote branch 't0m/json' into json" X-Git-Tag: 0.002002~7 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FGitalist.git;a=commitdiff_plain;h=3a6dd969c784dc7929e08e847a63d881446d8df8 Revert "Merge remote branch 't0m/json' into json" This reverts commit 68943a848e5fae4bd91569b930ddcdcecc6dfe9b, reversing changes made to 0fa199d20f9c661f21ced401be8dc12e0e93ecdd. Conflicts: Makefile.PL lib/Gitalist/Controller/Root.pm lib/Gitalist/Git/Repository.pm t/02git_Repository.t t/json_view.t --- diff --git a/Makefile.PL b/Makefile.PL index 05b6edf..54a102d 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -65,7 +65,7 @@ requires 'Catalyst::Action::REST' => '0.85'; requires 'Catalyst::View::Component::SubInclude' => '0.07'; requires 'Catalyst::View::TT' => '0.34'; requires 'Try::Tiny'; -requires 'Template'; +requires 'Template' => '2.22'; requires 'Template::Provider::Encoding'; requires 'Template::Plugin::Cycle'; @@ -73,14 +73,11 @@ requires 'Config::General'; requires 'Moose'; requires 'Moose::Autobox'; -requires 'MooseX::Declare' => '0.33'; -requires 'MooseX::Types::DateTime'; -requires 'MooseX::Types::ISO8601'; +requires 'MooseX::MultiMethods' => '0.10'; +requires 'MooseX::Declare' => '0.32'; requires 'MooseX::Types::Common'; requires 'MooseX::Types::Path::Class'; requires 'MooseX::Types'; -requires 'MooseX::Storage'; -requires 'JSON::XS'; requires 'namespace::autoclean'; requires 'Git::PurePerl' => '0.46'; @@ -106,7 +103,6 @@ requires_external_bin 'git'; test_requires 'Test::More' => '0.88'; test_requires 'Test::utf8' => '0.02'; -test_requires 'HTTP::Request::Common'; resources bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Gitalist'; resources repository => 'git://git.shadowcat.co.uk/catagits/Gitalist.git'; diff --git a/lib/Gitalist/Controller/Root.pm b/lib/Gitalist/Controller/Root.pm index eb6a147..14ef8ee 100644 --- a/lib/Gitalist/Controller/Root.pm +++ b/lib/Gitalist/Controller/Root.pm @@ -76,18 +76,6 @@ sub error_404 : Action { $c->response->body('Page not found'); } -__PACKAGE__->config( - default => 'text/html', - map => { - 'application/json' => [qw/ JSON /], - map { $_ => [qw/ View Default /] } - qw( text/css text/html text/plain - application/atom+xml application/rss+xml - application/rss application/xml ) - - } -); - __PACKAGE__->meta->make_immutable; __END__ diff --git a/lib/Gitalist/Git/CollectionOfRepositories.pm b/lib/Gitalist/Git/CollectionOfRepositories.pm index a4822a5..69243af 100644 --- a/lib/Gitalist/Git/CollectionOfRepositories.pm +++ b/lib/Gitalist/Git/CollectionOfRepositories.pm @@ -6,8 +6,6 @@ role Gitalist::Git::CollectionOfRepositories { use Moose::Autobox; use aliased 'Gitalist::Git::Repository'; - with 'Gitalist::Serializeable'; - has repositories => ( is => 'ro', isa => ArrayRef['Gitalist::Git::Repository'], diff --git a/lib/Gitalist/Git/HasUtils.pm b/lib/Gitalist/Git/HasUtils.pm index bcc0ad6..7d133ac 100644 --- a/lib/Gitalist/Git/HasUtils.pm +++ b/lib/Gitalist/Git/HasUtils.pm @@ -2,7 +2,6 @@ use MooseX::Declare; role Gitalist::Git::HasUtils { use Gitalist::Git::Util; - use MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize; method BUILD {} after BUILD { @@ -22,7 +21,6 @@ role Gitalist::Git::HasUtils { get_gpp_object gpp /], - traits => [qw/ DoNotSerialize /], ); method _build_util { confess(shift() . " cannot build _util") } } diff --git a/lib/Gitalist/Git/Object.pm b/lib/Gitalist/Git/Object.pm index 78c5448..31b07d6 100644 --- a/lib/Gitalist/Git/Object.pm +++ b/lib/Gitalist/Git/Object.pm @@ -5,8 +5,6 @@ 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, @@ -38,7 +36,6 @@ class Gitalist::Git::Object { is => 'ro', lazy_build => 1, handles => [ 'content' ], - traits => [qw/ DoNotSerialize /], ); # objects can't determine their mode or filename diff --git a/lib/Gitalist/Git/Repository.pm b/lib/Gitalist/Git/Repository.pm index 74de771..bcb36fa 100644 --- a/lib/Gitalist/Git/Repository.pm +++ b/lib/Gitalist/Git/Repository.pm @@ -3,19 +3,18 @@ use MooseX::Declare; class Gitalist::Git::Repository with Gitalist::Git::HasUtils { # FIXME, use Types::Path::Class and coerce use MooseX::Types::Common::String qw/NonEmptySimpleStr/; + use MooseX::Types::Path::Class qw/Dir/; use MooseX::Types::Moose qw/Str Maybe Bool HashRef ArrayRef/; - use Gitalist::Git::Types qw/SHA1 DateTime Dir/; + use Gitalist::Git::Types qw/SHA1/; use Moose::Autobox; use List::MoreUtils qw/any zip/; - use aliased 'DateTime' => 'DT'; + use DateTime; use Encode qw/decode/; use I18N::Langinfo qw/langinfo CODESET/; use Gitalist::Git::Object::Blob; use Gitalist::Git::Object::Tree; use Gitalist::Git::Object::Commit; use Gitalist::Git::Object::Tag; - - with 'Gitalist::Serializeable'; our $SHA1RE = qr/[0-9a-fA-F]{40}/; @@ -35,8 +34,7 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils { is => 'ro', required => 1 ); has path => ( isa => Dir, - is => 'ro', required => 1, - traits => [qw/ DoNotSerialize /] ); + is => 'ro', required => 1); has description => ( isa => Str, is => 'ro', @@ -48,7 +46,7 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils { lazy_build => 1, ); - has last_change => ( isa => Maybe[DateTime], + has last_change => ( isa => Maybe['DateTime'], is => 'ro', lazy_build => 1, ); @@ -63,9 +61,7 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils { ); has heads => ( isa => ArrayRef[HashRef], is => 'ro', - lazy_build => 1, - traits => [qw/ DoNotSerialize /], - ); + lazy_build => 1); has tags => ( isa => ArrayRef[HashRef], is => 'ro', lazy_build => 1); @@ -255,7 +251,7 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils { --sort=-committerdate --count=1 refs/heads }); if (my ($epoch, $tz) = $output =~ /\s(\d+)\s+([+-]\d+)$/) { - my $dt = DT->from_epoch(epoch => $epoch); + my $dt = DateTime->from_epoch(epoch => $epoch); $dt->set_time_zone($tz); $last_change = $dt; } @@ -273,7 +269,7 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils { #FIXME: That isn't the time I'm looking for.. if (my ($epoch, $tz) = $line =~ /\s(\d+)\s+([+-]\d+)$/) { - my $dt = DT->from_epoch(epoch => $epoch); + my $dt = DateTime->from_epoch(epoch => $epoch); $dt->set_time_zone($tz); $ret[-1]->{last_change} = $dt; } @@ -299,7 +295,7 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils { #FIXME: That isn't the time I'm looking for.. if($epoch and $tz) { - my $dt = DT->from_epoch(epoch => $epoch); + my $dt = DateTime->from_epoch(epoch => $epoch); $dt->set_time_zone($tz); $ret[-1]->{last_change} = $dt; } diff --git a/lib/Gitalist/Git/Types.pm b/lib/Gitalist/Git/Types.pm index 5cca578..af12bbc 100644 --- a/lib/Gitalist/Git/Types.pm +++ b/lib/Gitalist/Git/Types.pm @@ -1,16 +1,8 @@ package Gitalist::Git::Types; use MooseX::Types - -declare => [qw/ - SHA1 - DateTime - Dir - /]; + -declare => [qw/SHA1/]; -use MooseX::Types::Path::Class; -use MooseX::Types::ISO8601 qw/ISO8601DateTimeStr/; -use MooseX::Types::DateTime (); -use MooseX::Storage::Engine (); use MooseX::Types::Common::String qw/NonEmptySimpleStr/; subtype SHA1, @@ -22,34 +14,4 @@ coerce SHA1, from NonEmptySimpleStr, via { 1 }; -subtype DateTime, - as 'MooseX::Types::DateTime::DateTime', - where { 1 }; - -MooseX::Storage::Engine->add_custom_type_handler( - DateTime, - expand => sub { - my $val = shift; - Carp::confess("Not implemented"); - }, - collapse => sub { - to_ISO8601DateTimeStr(shift); - }, -); - -subtype Dir, - as 'MooseX::Types::Path::Class::Dir', - where { 1 }; - -MooseX::Storage::Engine->add_custom_type_handler( - Dir, - expand => sub { - my $val = shift; - Carp::confess("Not implemented"); - }, - collapse => sub { - shift() . ''; - }, -); - 1; diff --git a/lib/Gitalist/Serializeable.pm b/lib/Gitalist/Serializeable.pm deleted file mode 100644 index c430127..0000000 --- a/lib/Gitalist/Serializeable.pm +++ /dev/null @@ -1,32 +0,0 @@ -package Gitalist::Serializeable; -use Moose::Role; -use namespace::autoclean; -use MooseX::Storage; - -with Storage( traits => [qw|OnlyWhenBuilt|] ); - -1; - -=head1 NAME - -Gitalist::Serializeable - -=head1 SYNOPSIS - - class Gitalist::Git::Foo with Gitalist::Serializeable { - ... - } - -=head1 DESCRIPTION - -Role which applies a customised L. - -=head1 AUTHORS - -See L for authors. - -=head1 LICENSE - -See L for the license. - -=cut diff --git a/t/02git_Repository.t b/t/02git_Repository.t index 5119932..a0a6a09 100644 --- a/t/02git_Repository.t +++ b/t/02git_Repository.t @@ -39,24 +39,6 @@ is($proj->name, qw/repo1/, 'repository name is set'); is($proj->description, qq/some test repository/, 'repository description loaded'); isa_ok($proj->last_change, 'DateTime', 'last_change'); -is_deeply $proj->pack, { - '__CLASS__' => 'Gitalist::Git::Repository', - 'is_bare' => 1, - 'owner' => "T\x{e9}st", - 'last_change' => '2009-11-12T19:00:34Z', - 'name' => 'repo1', - 'description' => 'some test repository' -}; - -is_deeply $proj->pack, { - '__CLASS__' => 'Gitalist::Git::Repository', - 'is_bare' => 1, - 'owner' => "T\x{e9}st", - 'last_change' => '2009-11-12T19:00:34Z', - 'name' => 'repo1', - 'description' => 'some test repository' -}; - my %references = %{$proj->references}; ok(keys %references >= 2, '->references hash has elements'); is($references{'36c6c6708b8360d7023e8a1649c45bcf9b3bd818'}->[0], 'heads/master', 'reference looks ok'); diff --git a/t/json_view.t b/t/json_view.t deleted file mode 100644 index f275d59..0000000 --- a/t/json_view.t +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env perl - -use FindBin qw/$Bin/; -BEGIN { do "$FindBin::Bin/../script/env" or die $@ } - -use strict; -use warnings; -use Test::More; -use HTTP::Request::Common; -use JSON::Any; - - -BEGIN { - $ENV{GITALIST_CONFIG} = $Bin; - $ENV{GITALIST_REPO_DIR} = ''; - use_ok 'Catalyst::Test', 'Gitalist'; -} - -my $j = JSON::Any->new; - -my $res = request(GET 'http://localhost/repo1', 'Content-Type' => 'application/json'); -is $res->code, 200; -my $data = $j->decode($res->content); -is ref($data), 'HASH'; -delete $data->{owner} - if $data && exists $data->{owner}; -is_deeply $data, { - 'is_bare' => 1, - '__CLASS__' => 'Gitalist::Git::Repository', - 'last_change' => '2009-11-12T19:00:34Z', - 'name' => 'repo1', - '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; - -