use MooseX::Declare;
-role Gitalist::Git::CollectionOfRepositories {
+role Gitalist::Git::CollectionOfRepositories
+ with Gitalist::Git::Serializable
+ with Gitalist::Git::CollectionOfRepositories::Role::Context {
use MooseX::Types::Common::String qw/NonEmptySimpleStr/;
use MooseX::Types::Moose qw/ArrayRef/;
use Moose::Autobox;
use aliased 'Gitalist::Git::Repository';
+ requires 'debug_string';
+
has repositories => (
is => 'ro',
isa => ArrayRef['Gitalist::Git::Repository'],
);
method get_repository (NonEmptySimpleStr $name) {
- my $path = $self->_get_path_for_repository_name($name);
- die "Couldn't get_repository '$name' - not a valid git repository."
- unless $self->_is_git_repo($path);
- return Repository->new( $path );
+ my $repo = $self->_get_repo_from_name($name);
+ confess("Couldn't get_repository '$name' - not a valid git repository.")
+ 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 {