X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FGitalist%2FGit%2FCollectionOfRepositories%2FFromDirectory.pm;h=4d46a5fc36c693f3ad129a2e9834135309e1bb88;hb=13c42902c178ccbb5d2e9fd174e06e8995490ff3;hp=8eaf947e7f40e6453e139eff8fbe12589c504390;hpb=87581f054e0fa1c46688ffce55aedd21cd6e7530;p=catagits%2FGitalist.git diff --git a/lib/Gitalist/Git/CollectionOfRepositories/FromDirectory.pm b/lib/Gitalist/Git/CollectionOfRepositories/FromDirectory.pm index 8eaf947..4d46a5f 100644 --- a/lib/Gitalist/Git/CollectionOfRepositories/FromDirectory.pm +++ b/lib/Gitalist/Git/CollectionOfRepositories/FromDirectory.pm @@ -12,27 +12,33 @@ class Gitalist::Git::CollectionOfRepositories::FromDirectory coerce => 1, ); + method debug_string { 'repository directory ' . $self->repo_dir } + method BUILD { # Make sure repo_dir is an absolute path so that # ->contains() works correctly. $self->repo_dir->resolve; } - method _get_path_for_project_name (NonEmptySimpleStr $name) { + 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; } + method _get_repo_from_name (NonEmptySimpleStr $name) { + return Gitalist::Git::Repository->new($self->_get_path_for_repository_name($name)); + } + ## Builders - method _build_projects { + 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 project for each entry in repo_dir + # try to get a repository for each entry in repo_dir eval { - my $p = $self->get_project($dir_entry); + my $p = $self->get_repository($dir_entry); push @ret, $p; }; } @@ -44,14 +50,14 @@ __END__ =head1 NAME -Gitalist::Git::CollectionOfRepositories::FromDirectory - Model of a repository directory +Gitalist::Git::CollectionOfRepositories::FromDirectory - Model of a directory containing git repositories =head1 SYNOPSIS my $repo = Gitalist::Git::CollectionOfRepositories::FromDirectory->new( repo_dir => $Dir ); - my $project_list = $repo->projects; - my $first_project = $project_list->[0]; - my $named_project = $repo->get_project('Gitalist'); + my $repository_list = $repo->repositories; + my $first_repository = $repository_list->[0]; + my $named_repository = $repo->get_repository('Gitalist'); =head1 DESCRIPTION @@ -63,26 +69,9 @@ This class provides a list of Repositories found in the given directory. The filesystem root of the C. -=head2 projects - -An array of all Ls found in C. - - - -=head1 METHODS - -=head2 get_project (Str $name) - -Returns a L for the given name. -If C<$name> is not a valid git repository under C<$repo_dir>, an exception -will be thrown. - - - =head1 SEE ALSO -L - +L, L =head1 AUTHORS