Simplified Repository BUILDARGS logic.
Dan Brook [Sun, 13 Mar 2011 13:36:19 +0000 (13:36 +0000)]
My way of understanding things - make them simply enough so they fit
in my brain.

lib/Gitalist/Git/CollectionOfRepositories.pm
lib/Gitalist/Git/Repository.pm

index 8e3c309..116b409 100644 (file)
@@ -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;
     }
index 1da8395..2977c59 100644 (file)
@@ -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);
     }