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 94     94   1840 use strict;
  94         241  
  94         3020  
4 94     94   381 use warnings;
  94         161  
  94         3718  
5 94     94   2200 use Perl::PrereqScanner::NotQuiteLite::Util;
  94         987  
  94         28599  
6              
7             sub register { return {
8 93     93 0 512 use => {
9             unless => 'parse_unless_args',
10             },
11             }}
12              
13             sub parse_unless_args {
14 1     1 0 2 my ($class, $c, $used_module, $raw_tokens) = @_;
15              
16 1         3 while(my $token = shift @$raw_tokens) {
17 2 100       12 last if $token->[1] eq 'COMMA';
18             }
19              
20 1         3 my $tokens = convert_string_tokens($raw_tokens);
21 1         2 my $module = shift @$tokens;
22 1 0 0     2 if (ref $module and ($module->[1] eq 'WORD' or $module->[1] eq 'KEYWORD')) {
      33        
23 0         0 $module = $module->[0];
24             }
25 1 50       37 if (is_module_name($module)) {
26 1 50       4 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__