X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FGitalist%2FGit%2FCollectionOfRepositories%2FFromListOfDirectories.pm;h=4a554129ae10177d5e07300dd19ee4ace83e8c2e;hb=13c42902c178ccbb5d2e9fd174e06e8995490ff3;hp=a1a54c6679cedf9ff4d17492d91e92a03a933e6a;hpb=4418d47c1fa7ef035eee0dd8d2a4e1014976a63a;p=catagits%2FGitalist.git diff --git a/lib/Gitalist/Git/CollectionOfRepositories/FromListOfDirectories.pm b/lib/Gitalist/Git/CollectionOfRepositories/FromListOfDirectories.pm index a1a54c6..4a55412 100644 --- a/lib/Gitalist/Git/CollectionOfRepositories/FromListOfDirectories.pm +++ b/lib/Gitalist/Git/CollectionOfRepositories/FromListOfDirectories.pm @@ -4,13 +4,15 @@ class Gitalist::Git::CollectionOfRepositories::FromListOfDirectories with Gitali use MooseX::Types::Common::String qw/NonEmptySimpleStr/; use MooseX::Types::Moose qw/ ArrayRef HashRef /; use MooseX::Types::Path::Class qw/Dir/; + use Gitalist::Git::Types qw/ ArrayRefOfDirs /; use File::Basename qw/basename/; use Path::Class qw/dir/; use Moose::Autobox; has repos => ( - isa => ArrayRef[NonEmptySimpleStr], + isa => ArrayRefOfDirs, is => 'ro', + coerce => 1, required => 1, ); has _repos_by_name => ( @@ -23,10 +25,16 @@ class Gitalist::Git::CollectionOfRepositories::FromListOfDirectories with Gitali }, ); + method debug_string { 'repository directories ' . join(" ", map { $_."" } $self->repos->flatten) } + method _build__repos_by_name { +{ map { basename($_) => dir($_) } $self->repos->flatten }; } + method _get_repo_from_name (NonEmptySimpleStr $name) { + return Gitalist::Git::Repository->new($self->_get_path_for_repository_name($name)); + } + ## Builders method _build_repositories { [ map { $self->get_repository(basename($_)) } $self->repos->flatten ];