X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FGitalist%2FGit%2FRepository.pm;fp=lib%2FGitalist%2FGit%2FRepository.pm;h=602126b87ff2ce6cce86af33f5383e181a7b2f6f;hb=5c07fcf1ae72bd9e16c5ed8ff0d1442b4a3773b0;hp=2977c591dc1c5fa950ac37e460de509757a5f740;hpb=53fa77070d4838fafa68bec4362b64dec25d6aa0;p=catagits%2FGitalist.git diff --git a/lib/Gitalist/Git/Repository.pm b/lib/Gitalist/Git/Repository.pm index 2977c59..602126b 100644 --- a/lib/Gitalist/Git/Repository.pm +++ b/lib/Gitalist/Git/Repository.pm @@ -1,16 +1,18 @@ use MooseX::Declare; -class Gitalist::Git::Repository with Gitalist::Git::HasUtils { - # FIXME, use Types::Path::Class and coerce +class Gitalist::Git::Repository with (Gitalist::Git::HasUtils, Gitalist::Git::Serializable) { + use MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize; + 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/; + use MooseX::Types::Moose qw/Str Maybe Bool HashRef ArrayRef/; + use Gitalist::Git::Types qw/SHA1 DateTime Dir/; + use Moose::Autobox; + use aliased 'DateTime' => 'DT'; use List::MoreUtils qw/any zip/; - use DateTime; - use Encode qw/decode/; - use I18N::Langinfo qw/langinfo CODESET/; + 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; @@ -41,7 +43,8 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils { is => 'ro', required => 1 ); has path => ( isa => Dir, - is => 'ro', required => 1); + is => 'ro', required => 1, + traits => ['DoNotSerialize'] ); has description => ( isa => Str, is => 'ro', @@ -53,7 +56,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, ); @@ -233,7 +236,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 = DateTime->from_epoch(epoch => $epoch); + my $dt = DT->from_epoch(epoch => $epoch); $dt->set_time_zone($tz); $last_change = $dt; }