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   1694 use strict;
  82         222  
  82         2009  
4 82     82   349 use warnings;
  82         172  
  82         1659  
5 82     82   365 use Perl::PrereqScanner::NotQuiteLite::Util;
  82         166  
  82         25029  
6              
7             sub register { return {
8 81     81 0 413 method => {
9             VERSION => 'parse_version_args',
10             },
11             }}
12              
13             sub parse_version_args {
14 16     16 0 40 my ($class, $c, $raw_tokens) = @_;
15              
16 16         38 my ($module_token, undef, undef, $args_tokens) = @$raw_tokens;
17 16         33 my $module = $module_token->[0];
18 16 100       41 return unless ref $args_tokens->[0];
19              
20 15 50       30 my @tokens_in_parens = @{$args_tokens->[0] || []};
  15         43  
21 15 100       42 return if @tokens_in_parens > 1;
22              
23 14         28 my $version_token = $tokens_in_parens[0];
24 14         122 my $module_version;
25 14 100 100     66 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         26 $module_version = $version_token->[0][0];
29             } else {
30 1         3 return;
31             }
32 13 100       68 if ($module_version =~ /^v?[0-9._]+$/) {
33 12 100       42 $c->add_conditional($module => $module_version) if $c->has_added_conditional($module);
34             }
35             }
36              
37             1;
38              
39             __END__