From: Dan Brook Date: Sun, 13 Mar 2011 13:36:19 +0000 (+0000) Subject: Simplified Repository BUILDARGS logic. X-Git-Tag: 0.003001~2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FGitalist.git;a=commitdiff_plain;h=a9f6bdbe7204e417f4a279f5e4d7cd4445ca1400 Simplified Repository BUILDARGS logic. My way of understanding things - make them simply enough so they fit in my brain. --- diff --git a/lib/Gitalist/Git/CollectionOfRepositories.pm b/lib/Gitalist/Git/CollectionOfRepositories.pm index 8e3c309..116b409 100644 --- a/lib/Gitalist/Git/CollectionOfRepositories.pm +++ b/lib/Gitalist/Git/CollectionOfRepositories.pm @@ -20,7 +20,7 @@ role Gitalist::Git::CollectionOfRepositories { method get_repository (NonEmptySimpleStr $name) { my $repo = $self->_get_repo_from_name($name); - die "Couldn't get_repository '$name' - not a valid git repository." + confess("Couldn't get_repository '$name' - not a valid git repository.") unless $self->_is_git_repo($repo->path); return $repo; } diff --git a/lib/Gitalist/Git/Repository.pm b/lib/Gitalist/Git/Repository.pm index 1da8395..2977c59 100644 --- a/lib/Gitalist/Git/Repository.pm +++ b/lib/Gitalist/Git/Repository.pm @@ -24,16 +24,16 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils { # Allows us to be called as Repository->new($dir) # Last path component becomes $self->name # Full path to git objects becomes $self->path - my $name = ($override_name ne '') ? $override_name : $dir->dir_list(-1); + my $name = $dir->dir_list(-1); if(-f $dir->file('.git', 'HEAD')) { # Non-bare repo above .git $dir = $dir->subdir('.git'); - $name = $dir->dir_list(-2, 1) if (not defined $override_name); # .../name/.git + $name = $dir->dir_list(-2, 1); # .../name/.git } elsif('.git' eq $dir->dir_list(-1)) { # Non-bare repo in .git - $name = $dir->dir_list(-2) if (not defined $override_name); + $name = $dir->dir_list(-2); } confess("Can't find a git repository at " . $dir) - unless ( -f $dir->file('HEAD') ); - return $class->$orig(name => $name, + unless -f $dir->file('HEAD'); + return $class->$orig(name => $override_name || $name, path => $dir); }