File Coverage

lib/Perl/PrereqScanner/NotQuiteLite/Parser/Catalyst.pm
Criterion Covered Total %
statement 27 28 96.4
branch 14 16 87.5
condition 1 2 50.0
subroutine 5 5 100.0
pod 0 2 0.0
total 47 53 88.6


line stmt bran cond sub pod time code
1             package Perl::PrereqScanner::NotQuiteLite::Parser::Catalyst;
2              
3 94     94   1517 use strict;
  94         187  
  94         2866  
4 94     94   389 use warnings;
  94         144  
  94         3927  
5 94     94   394 use Perl::PrereqScanner::NotQuiteLite::Util;
  94         187  
  94         40006  
6              
7             sub register { return {
8 93     93 0 509 use => {
9             Catalyst => 'parse_catalyst_args',
10             },
11             }}
12              
13             sub parse_catalyst_args {
14 3     3 0 7 my ($class, $c, $used_module, $raw_tokens) = @_;
15              
16 3         6 my @copied_tokens = @$raw_tokens;
17 3 100 50     15 if (($copied_tokens[0][1] || '') eq '()') {
18 2         3 my $token = shift @copied_tokens;
19 2         4 unshift @copied_tokens, @{$token->[0]};
  2         5  
20             }
21 3 50       9 if (is_version($copied_tokens[0])) {
22 0         0 $c->add($used_module => shift @copied_tokens);
23             }
24              
25 3         5 my @plugins;
26 3         7 for my $token (@copied_tokens) {
27 14 50       41 my $desc = $token->[1] or next;
28 14 100       24 if ($desc eq 'STRING') {
    100          
29 4         8 push @plugins, $token->[0][0];
30             } elsif ($desc eq 'QUOTED_WORD_LIST') {
31 1         13 push @plugins, split /\s/, $token->[0][0];
32             }
33             }
34              
35 3         5 for my $plugin (@plugins) {
36 9 100       90 next if $plugin =~ /^\-/;
37 8 100       21 $plugin = "Catalyst::Plugin::$plugin" unless $plugin =~ s/^\+//;
38 8 100       14 $c->add($plugin => 0) if is_module_name($plugin);
39             }
40             }
41              
42             1;
43              
44             __END__