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.325';
3 1     1   781 use strict;
  1         7  
  1         42  
4 1     1   41 use warnings;
  1         3  
  1         38  
5 1     1   22 use 5.006;
  1         4  
6 1     1   7 use Carp;
  1         2  
  1         295  
7              
8             sub install {
9 4     4 1 14 my ( $class, @keywords ) = @_;
10              
11             # get the list of keywords to install
12 4         16 my %keyword = map { $_ => 1 } my @all_keywords = $class->_keywords;
  7         27  
13 4 100       16 @keywords = @all_keywords if !@keywords;
14             @keywords = grep {
15 4   66     7 !( !exists $keyword{$_} and carp "Unknown keyword '$_' in $class" )
  6         205  
16             } @keywords;
17 4 100       103 carp "No keywords installed from $class" if !@keywords;
18              
19             # install keywords
20 1     1   8 no strict 'refs';
  1         2  
  1         193  
21 4         26 *{"Git::Repository::$_"} = \&{"$class\::$_"} for @keywords;
  4         55  
  4         16  
22             }
23              
24             sub _keywords {
25 2     2   5 my ($class) = @_;
26 2         280 carp "Use of \@KEYWORDS by $class is deprecated";
27 1     1   9 no strict 'refs';
  1         2  
  1         77  
28 2         16 return @{"$class\::KEYWORDS"};
  2         13  
29             }
30              
31             1;
32              
33             __END__