File Coverage

lib/Perl/PrereqScanner/NotQuiteLite/Parser/Unless.pm
Criterion Covered Total %
statement 19 24 79.1
branch 4 8 50.0
condition 1 6 16.6
subroutine 5 5 100.0
pod 0 2 0.0
total 29 45 64.4


line stmt bran cond sub pod time code
1             package Perl::PrereqScanner::NotQuiteLite::Parser::Unless;
2              
3 82     82   1088 use strict;
  82         148  
  82         1911  
4 82     82   324 use warnings;
  82         142  
  82         1418  
5 82     82   336 use Perl::PrereqScanner::NotQuiteLite::Util;
  82         152  
  82         21921  
6              
7             sub register { return {
8 81     81 0 386 use => {
9             unless => 'parse_unless_args',
10             },
11             }}
12              
13             sub parse_unless_args {
14 1     1 0 3 my ($class, $c, $used_module, $raw_tokens) = @_;
15              
16 1         10 while(my $token = shift @$raw_tokens) {
17 2 100       8 last if $token->[1] eq 'COMMA';
18             }
19              
20 1         4 my $tokens = convert_string_tokens($raw_tokens);
21 1         1 my $module = shift @$tokens;
22 1 0 0     3 if (ref $module and ($module->[1] eq 'WORD' or $module->[1] eq 'KEYWORD')) {
      33        
23 0         0 $module = $module->[0];
24             }
25 1 50       3 if (is_module_name($module)) {
26 1 50       9 if (is_version($tokens->[0])) {
27 0         0 my $version = shift @$tokens;
28 0         0 $c->add_recommendation($module => $version);
29             } else {
30 1         4 $c->add_recommendation($module => 0);
31             }
32             } else {
33 0           push @{$c->{errors}}, "use unless module not found";
  0            
34             }
35             }
36              
37             1;
38              
39             __END__