| Gitalist documentation | Contained in the Gitalist distribution. |
Gitalist::Git::CollectionOfRepositories::FromDirectory - Model of a directory containing git repositories
my $repo = Gitalist::Git::CollectionOfRepositories::FromDirectory->new( repo_dir => $Dir );
my $repository_list = $repo->repositories;
my $first_repository = $repository_list->[0];
my $named_repository = $repo->get_repository('Gitalist');
This class provides a list of Repositories found in the given directory.
Path::Class::Dir)The filesystem root of the Repo.
See Gitalist for authors.
See Gitalist for the license.
| Gitalist documentation | Contained in the Gitalist distribution. |
use MooseX::Declare; class Gitalist::Git::CollectionOfRepositories::FromDirectory with Gitalist::Git::CollectionOfRepositories { use MooseX::Types::Common::String qw/NonEmptySimpleStr/; use MooseX::Types::Path::Class qw/Dir/; has repo_dir => ( isa => Dir, is => 'ro', required => 1, coerce => 1, ); method BUILD { # Make sure repo_dir is an absolute path so that # ->contains() works correctly. $self->repo_dir->resolve; } method _get_path_for_repository_name (NonEmptySimpleStr $name) { my $path = $self->repo_dir->subdir($name)->resolve; die "Directory traversal prohibited" unless $self->repo_dir->contains($path); return $path; } ## Builders method _build_repositories { my $dh = $self->repo_dir->open || die "Could not open repo_dir"; my @ret; while (my $dir_entry = $dh->read) { # try to get a repository for each entry in repo_dir eval { my $p = $self->get_repository($dir_entry); push @ret, $p; }; } return \@ret; } } # end class __END__