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   68 use strict;
  13         29  
  13         400  
3 13     13   45 use warnings;
  13         17  
  13         444  
4 13     13   5310 use Module::CPANfile;
  13         160367  
  13         2679  
5              
6             our $VERSION = "1.001";
7              
8             sub new {
9 3     3 0 7 my $class = shift;
10              
11 3         5 my $self = {};
12 3         6 bless $self, $class;
13              
14 3         14 return $self;
15             }
16              
17             sub discover {
18 3     3 0 5 my $self = shift;
19 3         14 my ($cpanfile_path) = @_;
20              
21 3         27 my $cpanfile = Module::CPANfile->load($cpanfile_path);
22              
23 3         4133 my $prereqs = $cpanfile->prereqs->as_string_hash;
24              
25 3         1661 my @deps;
26 3         9 foreach my $phase ( keys %$prereqs ) {
27 3         4 foreach my $type ( keys %{ $prereqs->{$phase} } ) {
  3         7  
28 3         5 foreach my $module ( keys %{ $prereqs->{$phase}->{$type} } ) {
  3         8  
29 7         14 my $version = $prereqs->{$phase}->{$type}->{$module};
30              
31 7 100       15 next if $module eq 'perl';
32              
33 5         30 push @deps,
34             {
35             module => $module,
36             version => $version,
37             };
38             }
39             }
40             }
41              
42 3         37 return @deps;
43             }
44              
45             1;