File Coverage

inc/Module/Install/Base.pm
Criterion Covered Total %
statement 10 23 43.4
branch 1 6 16.6
condition 0 2 0.0
subroutine 3 12 25.0
pod 0 3 0.0
total 14 46 30.4


line stmt bran cond sub pod time code
1             #line 1
2             package Module::Install::Base;
3              
4             $VERSION = '0.75';
5              
6             # Suspend handler for "redefined" warnings
7 2     2   6 BEGIN {
8 2         781 my $w = $SIG{__WARN__};
  2         57  
9             $SIG{__WARN__} = sub { $w };
10             }
11              
12             ### This is the ONLY module that shouldn't have strict on
13             # use strict;
14              
15             #line 41
16              
17             sub new {
18             my ($class, %args) = @_;
19              
20             foreach my $method ( qw(call load) ) {
21             *{"$class\::$method"} = sub {
22             shift()->_top->$method(@_);
23             } unless defined &{"$class\::$method"};
24             }
25              
26             bless( \%args, $class );
27             }
28              
29             #line 61
30              
31             sub AUTOLOAD {
32             my $self = shift;
33             local $@;
34             my $autoload = eval { $self->_top->autoload } or return;
35             goto &$autoload;
36             }
37              
38             #line 76
39              
40             sub _top { $_[0]->{_top} }
41              
42             #line 89
43 1     1 0 826  
44             sub admin {
45 1         4 $_[0]->_top->{admin} or Module::Install::Base::FakeAdmin->new;
46 2         10 }
47 0     0   0  
48 2 50       4 sub is_admin {
  2         18  
49             $_[0]->admin->VERSION;
50             }
51 1         5  
52             sub DESTROY {}
53              
54             package Module::Install::Base::FakeAdmin;
55              
56             my $Fake;
57             sub new { $Fake ||= bless(\@_, $_[0]) }
58              
59             sub AUTOLOAD {}
60              
61             sub DESTROY {}
62              
63 0     0     # Restore warning handler
64 0           BEGIN {
65 0 0         $SIG{__WARN__} = $SIG{__WARN__}->();
  0            
66 0           }
67              
68             1;
69              
70             #line 138