]> Dogcows Code - chaz/git-codeowners/blobdiff - lib/File/Codeowners.pm
add projects command and filtering to show command
[chaz/git-codeowners] / lib / File / Codeowners.pm
index fb3ec552c889bd6431be1ac7dd9d3c0c000f3fa3..648390e1ea45888ab1ffd60f904a66b9b9db0b84 100644 (file)
@@ -355,6 +355,31 @@ sub patterns {
     return $patterns;
 }
 
+=method projects
+
+    $projects = $codeowners->projects;
+
+Get an arrayref of all projects defined.
+
+=cut
+
+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;
+}
+
 =method update_owners
 
     $codeowners->update_owners($pattern => \@new_owners);
@@ -497,6 +522,7 @@ sub _clear {
     delete $self->{match_lines};
     delete $self->{owners};
     delete $self->{patterns};
+    delete $self->{projects};
 }
 
 1;
This page took 0.021492 seconds and 4 git commands to generate.