From: Zachary Stevens Date: Sat, 26 Jun 2010 18:54:05 +0000 (+0100) Subject: Stringify Object instances to their sha1. X-Git-Tag: 0.002007~28 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=acd0be236236c36b70c5e03de2e75179024e2918;hp=0556ab269dff444de064d2ef8d484b948435ff6a;p=catagits%2FGitalist.git Stringify Object instances to their sha1. --- diff --git a/lib/Gitalist/Git/Object.pm b/lib/Gitalist/Git/Object.pm index 31b07d6..e791d12 100644 --- a/lib/Gitalist/Git/Object.pm +++ b/lib/Gitalist/Git/Object.pm @@ -1,9 +1,10 @@ use MooseX::Declare; use Moose::Autobox; -class Gitalist::Git::Object { +class Gitalist::Git::Object is dirty { use MooseX::Types::Moose qw/Str Int Bool Maybe ArrayRef/; use MooseX::Types::Common::String qw/NonEmptySimpleStr/; + use overload '""' => '_to_string'; # repository and sha1 are required initargs has repository => ( isa => 'Gitalist::Git::Repository', @@ -50,6 +51,9 @@ class Gitalist::Git::Object { method BUILD { $self->$_() for qw/_gpp_obj size modestr/ } ## Private methods + method _to_string { + return $self->sha1; + }; ## Builders method _build__gpp_obj { diff --git a/t/02git_object.t b/t/02git_object.t index 2e69635..6e71fca 100644 --- a/t/02git_object.t +++ b/t/02git_object.t @@ -39,6 +39,7 @@ is($object->file, 'dir1', 'file is correct'); is($object->mode, 16384, 'mode is correct'); is($object->modestr, 'drwxr-xr-x', "modestr is correct" ); is($object->size, 33, "size is correct"); +is($object,'729a7c3f6ba5453b42d16a43692205f67fb23bc1', 'stringifies correctly'); # Create object from sha1. my $obj2 = Gitalist::Git::Object::Blob->new(