File Coverage

blib/lib/Git/Repository/Plugin.pm
Criterion Covered Total %
statement 31 31 100.0
branch 4 4 100.0
condition 2 3 66.6
subroutine 8 8 100.0
pod 1 1 100.0
total 46 47 97.8


line stmt bran cond sub pod time code
1             package Git::Repository::Plugin;
2             $Git::Repository::Plugin::VERSION = '1.324';
3 1     1   743 use strict;
  1         3  
  1         31  
4 1     1   16 use warnings;
  1         3  
  1         27  
5 1     1   31 use 5.006;
  1         4  
6 1     1   5 use Carp;
  1         2  
  1         315  
7              
8             sub install {
9 4     4 1 12 my ( $class, @keywords ) = @_;
10              
11             # get the list of keywords to install
12 4         14 my %keyword = map { $_ => 1 } my @all_keywords = $class->_keywords;
  7         29  
13 4 100       14 @keywords = @all_keywords if !@keywords;
14             @keywords = grep {
15 4   66     9 !( !exists $keyword{$_} and carp "Unknown keyword '$_' in $class" )
  6         178  
16             } @keywords;
17 4 100       97 carp "No keywords installed from $class" if !@keywords;
18              
19             # install keywords
20 1     1   8 no strict 'refs';
  1         2  
  1         194  
21 4         24 *{"Git::Repository::$_"} = \&{"$class\::$_"} for @keywords;
  4         54  
  4         15  
22             }
23              
24             sub _keywords {
25 2     2   4 my ($class) = @_;
26 2         229 carp "Use of \@KEYWORDS by $class is deprecated";
27 1     1   9 no strict 'refs';
  1         2  
  1         63  
28 2         16 return @{"$class\::KEYWORDS"};
  2         11  
29             }
30              
31             1;
32              
33             __END__