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 82     82   1088 use strict;
  82         152  
  82         1925  
4 82     82   322 use warnings;
  82         154  
  82         1479  
5 82     82   326 use Perl::PrereqScanner::NotQuiteLite::Util;
  82         151  
  82         22204  
6              
7             sub register { return {
8 81     81 0 389 method => {
9             VERSION => 'parse_version_args',
10             },
11             }}
12              
13             sub parse_version_args {
14 16     16 0 43 my ($class, $c, $raw_tokens) = @_;
15              
16 16         42 my ($module_token, undef, undef, $args_tokens) = @$raw_tokens;
17 16         30 my $module = $module_token->[0];
18 16 100       42 return unless ref $args_tokens->[0];
19              
20 15 50       23 my @tokens_in_parens = @{$args_tokens->[0] || []};
  15         128  
21 15 100       38 return if @tokens_in_parens > 1;
22              
23 14         19 my $version_token = $tokens_in_parens[0];
24 14         18 my $module_version;
25 14 100 100     56 if ($version_token->[1] and $version_token->[1] eq 'NUMBER') {
    100          
26 1         17 $module_version = $version_token->[0];
27             } elsif (ref $version_token->[0]) {
28 12         23 $module_version = $version_token->[0][0];
29             } else {
30 1         3 return;
31             }
32 13 100       110 if ($module_version =~ /^v?[0-9._]+$/) {
33 12 100       48 $c->add_conditional($module => $module_version) if $c->has_added_conditional($module);
34             }
35             }
36              
37             1;
38              
39             __END__