Reinstate FromDirectory in model.
Dan Brook [Sun, 13 Mar 2011 13:02:16 +0000 (13:02 +0000)]
This was dropped when FromDirectoryRecursive was added. But seeing as
how it has been the default behaviour for some time now
search_recursively is enabled by default in gitalist_local.conf.

gitalist_local.conf
lib/Gitalist.pm
lib/Gitalist/Model/CollectionOfRepos.pm
t/model_collectionofrepos.t

index 5a445f7..87dbb01 100644 (file)
@@ -4,7 +4,7 @@
     # This file is suppressed from the built dist by MANIFEST.SKIP, so you
     # don't have this config if you install from CPAN.
     repo_dir __path_to(../)__
-    # search_recursively 1
+    search_recursively 1
     # export_ok .export-ok
     # whitelist __path_to(../project.list)__
 </Model::CollectionOfRepos>
index b2a7746..69782dd 100644 (file)
@@ -216,8 +216,9 @@ Path to the C<git> binary.
 
 A directory containing the directories to show.
 
-If no repositories are found in this directory then Gitalist will
-search recursively in that directory for repositories.
+=item repos
+
+A list of directories containing repositories to show.
 
 =item search_recursively
 
@@ -247,7 +248,7 @@ visible. This is similar to C<gitweb>'s functionality.
 
 =item log
 
-The number of commits to show in the 
+The number of commits to show in the summary, shortlog and longlog views.
 
 =back
 
index f631815..4c56173 100644 (file)
@@ -95,9 +95,12 @@ sub build_per_context_instance {
     } elsif ($self->_repos_count && !$self->search_recursively) {
         $class = 'Gitalist::Git::CollectionOfRepositories::FromListOfDirectories';
         $args{repos} = $self->repos;
-    } else {
+    } elsif($self->search_recursively) {
         $class = 'Gitalist::Git::CollectionOfRepositories::FromDirectoryRecursive';
         $args{repo_dir} = $self->repo_dir;
+    } else {
+        $class = 'Gitalist::Git::CollectionOfRepositories::FromDirectory';
+        $args{repo_dir} = $self->repo_dir;
     }
 
     return $class->new(%args);
index 4db6713..51112cf 100644 (file)
@@ -21,7 +21,7 @@ use Catalyst::Request;
 use Catalyst::Response;
 use Catalyst::Utils;
 use Gitalist::Model::CollectionOfRepos;
-use File::Temp qw/tempdir/;
+use File::Temp qw/tempdir tempfile/;
 
 my $mock_ctx_meta = Class::MOP::Class->create_anon_class( superclasses => ['Moose::Object'] );
 $mock_ctx_meta->add_attribute($_, accessor => $_, required => 1) for qw/request response/;
@@ -95,13 +95,8 @@ throws_ok { Gitalist::Model::CollectionOfRepos->COMPONENT($ctx_gen->(), { repos
 
 {
     my $i = test_with_config({ repo_dir => "$FindBin::Bin/lib/repositories"});
-    is scalar($i->repositories->flatten), 6, 'Found 6 repos';
-}
-
-{
-    my $i = test_with_config({ repo_dir => "$FindBin::Bin/lib"});
-    is scalar($i->repositories->flatten), 6, 'Found 6 repos recursively';
-    isa_ok $i, 'Gitalist::Git::CollectionOfRepositories::FromDirectoryRecursive';
+    is scalar($i->repositories->flatten), 3, 'Found 6 repos';
+    isa_ok $i, 'Gitalist::Git::CollectionOfRepositories::FromDirectory';
 }
 
 {
@@ -109,6 +104,14 @@ throws_ok { Gitalist::Model::CollectionOfRepos->COMPONENT($ctx_gen->(), { repos
     is scalar($i->repositories->flatten), 6, 'Found 6 repos recursively using config';
     isa_ok $i, 'Gitalist::Git::CollectionOfRepositories::FromDirectoryRecursive';
 }
+ {
+    my($tempfh, $wl) = tempfile(UNLINK => 1);
+    print {$tempfh} "repo1";
+    close $tempfh;
+    my $i = test_with_config({ repo_dir => "$FindBin::Bin/lib/repositories", whitelist => $wl });
+    is scalar($i->repositories->flatten), 1, 'Found 1 repos using whitelist';
+    isa_ok $i, 'Gitalist::Git::CollectionOfRepositories::FromDirectory::WhiteList';
+}
 
 {
     my $i = test_with_config({ repos => [
@@ -117,6 +120,7 @@ throws_ok { Gitalist::Model::CollectionOfRepos->COMPONENT($ctx_gen->(), { repos
         "$FindBin::Bin/lib/repositories/nodescription",
     ]});
     is scalar($i->repositories->flatten), 3, 'Found 3 repos';
+    isa_ok $i, 'Gitalist::Git::CollectionOfRepositories::FromListOfDirectories';
 }
 
 sub test_with_config {