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