File Coverage

lib/Perl/PrereqScanner/NotQuiteLite/Parser/Superclass.pm
Criterion Covered Total %
statement 29 31 93.5
branch 10 16 62.5
condition 0 2 0.0
subroutine 5 5 100.0
pod 0 2 0.0
total 44 56 78.5


line stmt bran cond sub pod time code
1             package Perl::PrereqScanner::NotQuiteLite::Parser::Superclass;
2              
3 94     94   2668 use strict;
  94         209  
  94         2951  
4 94     94   428 use warnings;
  94         182  
  94         3691  
5 94     94   403 use Perl::PrereqScanner::NotQuiteLite::Util;
  94         186  
  94         30525  
6              
7             sub register { return {
8 93     93 0 566 use => {
9             superclass => 'parse_superclass_args',
10             },
11             }}
12              
13             sub parse_superclass_args {
14 7     7 0 14 my ($class, $c, $used_module, $raw_tokens) = @_;
15              
16 7         19 my $tokens = convert_string_tokens($raw_tokens);
17 7 50       16 if (is_version($tokens->[0])) {
18 0         0 $c->add($used_module => shift @$tokens);
19             }
20              
21 7         11 my ($module, $version, $prev);
22 7         11 for my $token (@$tokens) {
23 19 50       250 last if $token eq '-norequire';
24 19 100       30 if (ref $token) {
25 8 50       17 last if $token->[0] eq '-norequire';
26 8         13 $prev = $token->[0];
27 8         31 next;
28             }
29 11         16 $prev = $token;
30              
31 11 100       18 if (is_module_name($token)) {
32 7 50       13 if ($module) {
33 0   0     0 $c->add($module => $version || 0);
34             }
35 7         8 $module = $token;
36 7         13 next;
37             }
38 4 50       11 if (is_version($token)) {
39 4         10 $c->add($module => $token);
40             }
41             }
42 7 50       88 if ($module) {
43 7         15 $c->add($module => 0);
44             }
45             }
46              
47             1;
48              
49             __END__