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 83     83   1400 use strict;
  83         178  
  83         2276  
4 83     83   405 use warnings;
  83         190  
  83         1830  
5 83     83   411 use Perl::PrereqScanner::NotQuiteLite::Util;
  83         179  
  83         25378  
6              
7             sub register { return {
8 82     82 0 465 use => {
9             superclass => 'parse_superclass_args',
10             },
11             }}
12              
13             sub parse_superclass_args {
14 7     7 0 23 my ($class, $c, $used_module, $raw_tokens) = @_;
15              
16 7         21 my $tokens = convert_string_tokens($raw_tokens);
17 7 50       21 if (is_version($tokens->[0])) {
18 0         0 $c->add($used_module => shift @$tokens);
19             }
20              
21 7         17 my ($module, $version, $prev);
22 7         17 for my $token (@$tokens) {
23 19 50       295 last if $token eq '-norequire';
24 19 100       44 if (ref $token) {
25 8 50       22 last if $token->[0] eq '-norequire';
26 8         16 $prev = $token->[0];
27 8         17 next;
28             }
29 11         21 $prev = $token;
30              
31 11 100       25 if (is_module_name($token)) {
32 7 50       21 if ($module) {
33 0   0     0 $c->add($module => $version || 0);
34             }
35 7         14 $module = $token;
36 7         17 next;
37             }
38 4 50       11 if (is_version($token)) {
39 4         14 $c->add($module => $token);
40             }
41             }
42 7 50       118 if ($module) {
43 7         21 $c->add($module => 0);
44             }
45             }
46              
47             1;
48              
49             __END__