File Coverage

blib/lib/Pod/Coverage/CountParents.pm
Criterion Covered Total %
statement 0 23 0.0
branch 0 6 0.0
condition n/a
subroutine 0 2 0.0
pod n/a
total 0 31 0.0


line stmt bran cond sub pod time code
1             package Pod::Coverage::CountParents;
2             use strict;
3             use Pod::Coverage ();
4             use base 'Pod::Coverage';
5              
6             # this code considered lightly fugly :)
7              
8             sub _get_pods {
9 0     0     my $self = shift;
10 0           my $package = $self->{package};
11              
12 0           eval qq{ require $package };
13 0 0         if ($@) {
14 0           $self->{why_unrated} = "Couldn't compile '$package' to inspect: $@";
15 0           return;
16             }
17              
18 0           my %pods;
19 0           $pods{$package} = $self->SUPER::_get_pods;
20              
21 0           __walk_up($package, \%pods);
22 0 0         my %flat = map { $_ => 1 } map { @{ $_ || [] } } values %pods;
  0            
  0            
  0            
23 0           return [ keys %flat ];
24             }
25              
26             sub __walk_up {
27 0     0     my $package = shift;
28 0           my $pods = shift;
29              
30 0           $pods->{$package} = Pod::Coverage->new(package => $package)->_get_pods();
31              
32 0           my @parents;
33             {
34 0           no strict 'refs';
35 0           @parents = @{"$package\::ISA"};
  0            
36             }
37              
38 0 0         do { $pods->{$_} || __walk_up($_, $pods) } for @parents;
  0            
39             }
40              
41             1;
42             __END__