X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FGitalist%2FGit%2FRepository.pm;h=f65eb0bc26da017b4e9fe38dbcb6959f8330b93d;hb=dcb1b9274df97bb163f7c0fb3b9aa80c31255cae;hp=eaefb942c1034d6c1ea2505fbf209a37d2af5a2a;hpb=9c96c2353321cd52789e2df03501a890c48f1e7b;p=catagits%2FGitalist.git diff --git a/lib/Gitalist/Git/Repository.pm b/lib/Gitalist/Git/Repository.pm index eaefb94..f65eb0b 100644 --- a/lib/Gitalist/Git/Repository.pm +++ b/lib/Gitalist/Git/Repository.pm @@ -6,6 +6,7 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils { 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::MultiMethods; use Moose::Autobox; use List::MoreUtils qw/any zip/; use DateTime; @@ -74,6 +75,15 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils { } ## Public methods + + multi method get_object_or_head (SHA1 $sha1) { + $self->get_object($sha1); + } + multi method get_object_or_head (NonEmptySimpleStr $ref) { + my $sha1 = $self->head_hash($ref); + $self->get_object($sha1); + } + method head_hash (Str $head?) { my $output = $self->run_cmd(qw/rev-parse --verify/, $head || 'HEAD' ); confess("No such head: " . $head) unless defined $output;