Get sane debugging info for the setup of everything
Tomas Doran [Mon, 14 Nov 2011 23:18:42 +0000 (23:18 +0000)]
lib/Gitalist/Git/CollectionOfRepositories.pm
lib/Gitalist/Git/CollectionOfRepositories/FromDirectory.pm
lib/Gitalist/Git/CollectionOfRepositories/FromDirectory/WhiteList.pm
lib/Gitalist/Git/CollectionOfRepositories/FromDirectoryRecursive.pm
lib/Gitalist/Git/CollectionOfRepositories/FromListOfDirectories.pm
lib/Gitalist/Git/CollectionOfRepositories/Vhost.pm
lib/Gitalist/Model/CollectionOfRepos.pm

index 4d8fd32..706f489 100644 (file)
@@ -6,6 +6,8 @@ role Gitalist::Git::CollectionOfRepositories with Gitalist::Git::Serializable {
     use Moose::Autobox;
     use aliased 'Gitalist::Git::Repository';
 
+    requires 'debug_string';
+
     has repositories => (
         is         => 'ro',
         isa        => ArrayRef['Gitalist::Git::Repository'],
index 86ac402..4d46a5f 100644 (file)
@@ -12,6 +12,8 @@ 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.
index 3ef203c..e78c9d3 100644 (file)
@@ -12,6 +12,8 @@ class Gitalist::Git::CollectionOfRepositories::FromDirectory::WhiteList
         coerce   => 1,
     );
 
+    method debug_string { 'repository directory ' . $self->repo_dir . ' whitelist file ' . $self->whitelist }
+
     method _build_repositories {
         return [
             map  Gitalist::Git::Repository->new($_),
index b23c949..a533c16 100644 (file)
@@ -14,6 +14,8 @@ class Gitalist::Git::CollectionOfRepositories::FromDirectoryRecursive {
         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;
index d17c492..4a55412 100644 (file)
@@ -25,6 +25,8 @@ class Gitalist::Git::CollectionOfRepositories::FromListOfDirectories with Gitali
         },
     );
 
+    method debug_string { 'repository directories ' . join(" ", map { $_."" } $self->repos->flatten) }
+
     method _build__repos_by_name {
         +{ map { basename($_) => dir($_) } $self->repos->flatten };
     }
index 8daf00c..dd12c12 100644 (file)
@@ -45,6 +45,8 @@ class Gitalist::Git::CollectionOfRepositories::Vhost
         required => 1,
     );
 
+    method debug_string { 'chosen collection ' . ref($self->chosen_collection) . " " . $self->chosen_collection->debug_string }
+
     role_type 'Gitalist::Git::CollectionOfRepositories';
     has chosen_collection => (
         does => 'Gitalist::Git::CollectionOfRepositories',
index e9e6fb4..090cb8c 100644 (file)
@@ -115,9 +115,11 @@ sub build_per_context_instance {
 
     my $class = $self->class;
 
-    $ctx->log->debug("Using class '$class'") if $ctx->debug;
+    my $model = $class->new(%args);
 
-    return $class->new(%args);
+    $ctx->log->debug("Using class '$class' " . $model->debug_string) if $ctx->debug;
+
+    return $model;
 }
 
 __PACKAGE__->meta->make_immutable;