);
method get_repository (NonEmptySimpleStr $name) {
- my $path = $self->_get_path_for_repository_name($name);
+ my $repo = $self->_get_repo_from_name($name);
die "Couldn't get_repository '$name' - not a valid git repository."
- unless $self->_is_git_repo($path);
- return Repository->new( $path );
+ unless $self->_is_git_repo($repo->path);
+ return $repo;
}
+
# Determine whether a given directory is a git repo.
# http://www.kernel.org/pub/software/scm/git/docs/gitrepository-layout.html
method _is_git_repo ($dir) {
}
requires qw/
_build_repositories
- _get_path_for_repository_name
+ _get_repo_from_name
/;
around _build_repositories {
return $path;
}
+ method _get_repo_from_name (NonEmptySimpleStr $name) {
+ return Gitalist::Git::Repository->new($self->_get_path_for_repository_name($name));
+ }
+
## Builders
method _build_repositories {
my $dh = $self->repo_dir->open || die "Could not open repo_dir";
} grep $_->is_dir, $dir->children;
}
- method _get_path_for_repository_name (NonEmptySimpleStr $name) {
+ method _get_repo_from_name (NonEmptySimpleStr $name) {
my $repo = first { $_->name eq $name } $self->repositories->flatten
or return;
- return $repo->path;
+ return $repo;
}
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;
+ return Path::Class::Dir->new($name)->relative($self->repo_dir)->stringify;
}
## Builders
+{ 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 ];