Remove whitespace [Gun.io WhitespaceBot]
[catagits/Gitalist.git] / lib / Gitalist / Git / CollectionOfRepositories / FromDirectory / WhiteList.pm
CommitLineData
b70462a4 1use MooseX::Declare;
2
3class Gitalist::Git::CollectionOfRepositories::FromDirectory::WhiteList
4 extends Gitalist::Git::CollectionOfRepositories::FromDirectory {
5 use MooseX::Types::Common::String qw/NonEmptySimpleStr/;
6 use MooseX::Types::Path::Class qw/File Dir/;
7
8 has whitelist => (
9 isa => File,
10 is => 'ro',
11 required => 1,
12 coerce => 1,
13 );
14
15 method _build_repositories {
16 return [
17 map Gitalist::Git::Repository->new($_),
18 grep -d $_,
dfbedbb4 19 map $self->repo_dir->subdir($_),
20 map [split]->[0], $self->whitelist->slurp(chomp => 1)
b70462a4 21 ];
22 }
23}
24
25__END__
26=head1 NAME
27
28Gitalist::Git::CollectionOfRepositories::FromDirectory::WhiteList - Model of a repositories listed in a file in a given directory.
29
30=head1 SYNOPSIS
31
32 my $repo = Gitalist::Git::CollectionOfRepositories::FromDirectory::WhiteList->new(
33 repo_dir => $Dir,
34 whitelist => 'projects.list',
35 );
36 my $repository_list = $repo->repositories;
37 my $first_repository = $repository_list->[0];
38 my $named_repository = $repo->get_repository('Gitalist');
39
40=head1 DESCRIPTION
41
42This class provides a list of Repositories found in the given
43directory and specified in a given whitelist file.
44
45=head1 ATTRIBUTES
46
47=head2 whitelist (C<Path::Class::File>)
48
49The file containing the available repositories. Each line specifies a
50different repository within L</repo_dir>.
51
52=head1 SEE ALSO
53
54L<Gitalist::Git::CollectionOfRepositories>,
fe89796b 55L<Gitalist::Git::Repository>,
b70462a4 56L<Gitalist::Git::CollectionOfRepositories::FromDirectory>
57
58=head1 AUTHORS
59
60See L<Gitalist> for authors.
61
62=head1 LICENSE
63
64See L<Gitalist> for the license.
65
66=cut