Be able to override the autodetected repo name
[catagits/Gitalist.git] / lib / Gitalist / Git / CollectionOfRepositories / FromDirectoryRecursive.pm
index ab5701d..fc17eed 100644 (file)
@@ -2,8 +2,6 @@ use MooseX::Declare;
 
 class Gitalist::Git::CollectionOfRepositories::FromDirectoryRecursive
     with Gitalist::Git::CollectionOfRepositories {
-      use MooseX::Types::Common::String qw/NonEmptySimpleStr/;
-      use MooseX::Types::Path::Class qw/Dir/;
 
     use MooseX::Types::Common::String qw/NonEmptySimpleStr/;
     use MooseX::Types::Path::Class qw/Dir/;
@@ -19,8 +17,7 @@ class Gitalist::Git::CollectionOfRepositories::FromDirectoryRecursive
     );
 
     method BUILD {
-      # Make sure repo_dir is an absolute path so that
-      # ->contains() works correctly.
+      # Make sure repo_dir is an absolute path so that ->contains() works correctly.
       $self->repo_dir->resolve;
     }
 
@@ -36,10 +33,15 @@ class Gitalist::Git::CollectionOfRepositories::FromDirectoryRecursive
       return $repo->path;
     }
 
+    method _get_repo_name (NonEmptySimpleStr $name) {
+        # strip off the repo_dir part from a path
+               return Path::Class::Dir->new($name)->relative($self->repo_dir)->stringify;
+    }
+
     ## Builders
     method _build_repositories {
       return [
-        map Gitalist::Git::Repository->new($_), $self->_find_repos( $self->repo_dir )
+        map { Gitalist::Git::Repository->new($_, $self->_get_repo_name("$_")) } $self->_find_repos( $self->repo_dir )
       ];
     }
 }                         # end class