use Scalar::Util qw(openhandle);
use Text::Gitignore qw(build_gitignore_matcher);
-our $VERSION = '0.41'; # VERSION
+our $VERSION = '0.42'; # VERSION
sub _croak { require Carp; Carp::croak(@_); }
sub _usage { _croak("Usage: @_\n") }
}
+sub projects {
+ my $self = shift;
+
+ return $self->{projects} if $self->{projects};
+
+ my %projects;
+ for my $line (@{$self->_lines}) {
+ my $project = $line->{project};
+ $projects{$project}++ if $project;
+ }
+
+ my $projects = [sort keys %projects];
+ $self->{projects} = $projects;
+
+ return $projects;
+}
+
+
sub update_owners {
my $self = shift;
my $pattern = shift;
delete $self->{match_lines};
delete $self->{owners};
delete $self->{patterns};
+ delete $self->{projects};
}
1;
=head1 VERSION
-version 0.41
+version 0.42
=head1 METHODS
Get an arrayref of all patterns defined.
+=head2 projects
+
+ $projects = $codeowners->projects;
+
+Get an arrayref of all projects defined.
+
=head2 update_owners
$codeowners->update_owners($pattern => \@new_owners);