X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FGitalist%2FGit%2FCollectionOfRepositories%2FFromListOfDirectories.pm;h=d17c49281b092d13b01f40b2cde56ad17c0892ec;hb=ea7725112cb1e27f0c76481742daad900380b8cd;hp=4f3383cd96e8b1d1866174c22eb5a89040f0a2c7;hpb=271f6b464c2e18789aafa7ec661353cf91013990;p=catagits%2FGitalist.git diff --git a/lib/Gitalist/Git/CollectionOfRepositories/FromListOfDirectories.pm b/lib/Gitalist/Git/CollectionOfRepositories/FromListOfDirectories.pm index 4f3383c..d17c492 100644 --- a/lib/Gitalist/Git/CollectionOfRepositories/FromListOfDirectories.pm +++ b/lib/Gitalist/Git/CollectionOfRepositories/FromListOfDirectories.pm @@ -3,16 +3,20 @@ use MooseX::Declare; class Gitalist::Git::CollectionOfRepositories::FromListOfDirectories with Gitalist::Git::CollectionOfRepositories { 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 => ( - isa => HashRef[NonEmptySimpleStr], + isa => HashRef[Dir], is => 'ro', lazy_build => 1, traits => ['Hash'], @@ -22,12 +26,16 @@ class Gitalist::Git::CollectionOfRepositories::FromListOfDirectories with Gitali ); method _build__repos_by_name { - { map { basename($_) => $_ } $self->repos->flatten }; + +{ 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($_) } $self->repos->flatten ]; + [ map { $self->get_repository(basename($_)) } $self->repos->flatten ]; } } # end class