Revert "Merge remote branch 't0m/json' into json"
Dan Brook [Tue, 29 Jun 2010 09:00:08 +0000 (10:00 +0100)]
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

Makefile.PL
lib/Gitalist/Controller/Root.pm
lib/Gitalist/Git/CollectionOfRepositories.pm
lib/Gitalist/Git/HasUtils.pm
lib/Gitalist/Git/Object.pm
lib/Gitalist/Git/Repository.pm
lib/Gitalist/Git/Types.pm
lib/Gitalist/Serializeable.pm [deleted file]
t/02git_Repository.t
t/json_view.t [deleted file]

index 05b6edf..54a102d 100644 (file)
@@ -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';
index eb6a147..14ef8ee 100644 (file)
@@ -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__
index a4822a5..69243af 100644 (file)
@@ -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'],
index bcc0ad6..7d133ac 100644 (file)
@@ -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") }
 }
index 78c5448..31b07d6 100644 (file)
@@ -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
index 74de771..bcb36fa 100644 (file)
@@ -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;
             }
index 5cca578..af12bbc 100644 (file)
@@ -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 (file)
index c430127..0000000
+++ /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<MooseX::Storage>.
-
-=head1 AUTHORS
-
-See L<Gitalist> for authors.
-
-=head1 LICENSE
-
-See L<Gitalist> for the license.
-
-=cut
index 5119932..a0a6a09 100644 (file)
@@ -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 (file)
index f275d59..0000000
+++ /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;
-
-