File Coverage

lib/Perl/PrereqScanner/NotQuiteLite/Parser/UniversalVersion.pm
Criterion Covered Total %
statement 25 25 100.0
branch 13 14 92.8
condition 3 3 100.0
subroutine 5 5 100.0
pod 0 2 0.0
total 46 49 93.8


line stmt bran cond sub pod time code
1             package Perl::PrereqScanner::NotQuiteLite::Parser::UniversalVersion;
2              
3 83     83   1399 use strict;
  83         189  
  83         2256  
4 83     83   416 use warnings;
  83         196  
  83         1961  
5 83     83   417 use Perl::PrereqScanner::NotQuiteLite::Util;
  83         193  
  83         26696  
6              
7             sub register { return {
8 82     82 0 484 method => {
9             VERSION => 'parse_version_args',
10             },
11             }}
12              
13             sub parse_version_args {
14 16     16 0 38 my ($class, $c, $raw_tokens) = @_;
15              
16 16         42 my ($module_token, undef, undef, $args_tokens) = @$raw_tokens;
17 16         32 my $module = $module_token->[0];
18 16 100       45 return unless ref $args_tokens->[0];
19              
20 15 50       21 my @tokens_in_parens = @{$args_tokens->[0] || []};
  15         158  
21 15 100       45 return if @tokens_in_parens > 1;
22              
23 14         28 my $version_token = $tokens_in_parens[0];
24 14         25 my $module_version;
25 14 100 100     63 if ($version_token->[1] and $version_token->[1] eq 'NUMBER') {
    100          
26 1         3 $module_version = $version_token->[0];
27             } elsif (ref $version_token->[0]) {
28 12         27 $module_version = $version_token->[0][0];
29             } else {
30 1         4 return;
31             }
32 13 100       150 if ($module_version =~ /^v?[0-9._]+$/) {
33 12 100       46 $c->add_conditional($module => $module_version) if $c->has_added_conditional($module);
34             }
35             }
36              
37             1;
38              
39             __END__