File Coverage

lib/CPAN/Audit/Discover/Cpanfile.pm
Criterion Covered Total %
statement 27 27 100.0
branch 2 2 100.0
condition n/a
subroutine 5 5 100.0
pod 0 2 0.0
total 34 36 94.4


line stmt bran cond sub pod time code
1             package CPAN::Audit::Discover::Cpanfile;
2 13     13   88 use strict;
  13         38  
  13         632  
3 13     13   67 use warnings;
  13         21  
  13         620  
4 13     13   6669 use Module::CPANfile;
  13         221933  
  13         3642  
5              
6             our $VERSION = "1.001";
7              
8             sub new {
9 3     3 0 10 my $class = shift;
10              
11 3         7 my $self = {};
12 3         9 bless $self, $class;
13              
14 3         39 return $self;
15             }
16              
17             sub discover {
18 3     3 0 5 my $self = shift;
19 3         8 my ($cpanfile_path) = @_;
20              
21 3         84 my $cpanfile = Module::CPANfile->load($cpanfile_path);
22              
23 3         2953 my $prereqs = $cpanfile->prereqs->as_string_hash;
24              
25 3         2124 my @deps;
26 3         10 foreach my $phase ( keys %$prereqs ) {
27 3         6 foreach my $type ( keys %{ $prereqs->{$phase} } ) {
  3         9  
28 3         5 foreach my $module ( keys %{ $prereqs->{$phase}->{$type} } ) {
  3         26  
29 7         28 my $version = $prereqs->{$phase}->{$type}->{$module};
30              
31 7 100       22 next if $module eq 'perl';
32              
33 5         24 push @deps,
34             {
35             module => $module,
36             version => $version,
37             };
38             }
39             }
40             }
41              
42 3         48 return @deps;
43             }
44              
45             1;