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