Align Vhost code with reality.
[catagits/Gitalist.git] / lib / Gitalist / Git / CollectionOfRepositories.pm
index 62ed906..dc3efe5 100644 (file)
@@ -1,11 +1,15 @@
 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'],
@@ -19,11 +23,12 @@ role Gitalist::Git::CollectionOfRepositories {
     );
 
     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) {
@@ -37,7 +42,7 @@ role Gitalist::Git::CollectionOfRepositories {
     }
     requires qw/
         _build_repositories
-        _get_path_for_repository_name
+        _get_repo_from_name
     /;
 
     around _build_repositories {