Commit | Line | Data |
b70462a4 |
1 | use MooseX::Declare; |
2 | |
3 | class 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 | |
28 | Gitalist::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 | |
42 | This class provides a list of Repositories found in the given |
43 | directory and specified in a given whitelist file. |
44 | |
45 | =head1 ATTRIBUTES |
46 | |
47 | =head2 whitelist (C<Path::Class::File>) |
48 | |
49 | The file containing the available repositories. Each line specifies a |
50 | different repository within L</repo_dir>. |
51 | |
52 | =head1 SEE ALSO |
53 | |
54 | L<Gitalist::Git::CollectionOfRepositories>, |
55 | L<Gitalist::Git::Repository>, |
56 | L<Gitalist::Git::CollectionOfRepositories::FromDirectory> |
57 | |
58 | =head1 AUTHORS |
59 | |
60 | See L<Gitalist> for authors. |
61 | |
62 | =head1 LICENSE |
63 | |
64 | See L<Gitalist> for the license. |
65 | |
66 | =cut |