fixing inline pod documentation for the debian package. (missing whatis entry)
[catagits/Gitalist.git] / lib / Gitalist / Model / CollectionOfRepos.pm
index 84e107d..128d0ba 100644 (file)
@@ -3,6 +3,7 @@ package Gitalist::Model::CollectionOfRepos;
 use Moose;
 use Gitalist::Git::CollectionOfRepositories::FromDirectoryRecursive;
 use Gitalist::Git::CollectionOfRepositories::FromListOfDirectories;
+use Gitalist::Git::CollectionOfRepositories::FromDirectory::WhiteList;
 use MooseX::Types::Moose qw/Maybe ArrayRef/;
 use MooseX::Types::Common::String qw/NonEmptySimpleStr/;
 use Moose::Util::TypeConstraints;
@@ -49,11 +50,23 @@ has repos => (
     coerce => 1,
 );
 
+
+has search_recursively => (
+    is      => 'ro',
+    isa     => 'Bool',
+    default => 0,
+);
+
 has export_ok => (
     is  => 'ro',
     isa => 'Str',
 );
 
+has whitelist => (
+    is  => 'ro',
+    isa => 'Str',
+);
+
 sub _build_repo_dir {
     my $self = shift;
     $ENV{GITALIST_REPO_DIR} ?
@@ -75,13 +88,19 @@ sub build_per_context_instance {
 
     my %args = (export_ok => $self->export_ok || '');
     my $class;
-    if ($self->_repos_count) {
+    if($self->whitelist && -f $self->whitelist) {
+        $class = 'Gitalist::Git::CollectionOfRepositories::FromDirectory::WhiteList';
+        $args{repo_dir}  = $self->repo_dir;
+        $args{whitelist} = $self->whitelist;
+    } 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);
@@ -91,6 +110,12 @@ __PACKAGE__->meta->make_immutable;
 
 __END__
 
+=encoding UTF-8
+
+=head1 NAME
+
+Gitalist::Model::CollectionOfRepos - Model::CollectionOfRepos module for Gitalist
+
 =head1 AUTHORS
 
 See L<Gitalist> for authors.