File Coverage

inc/Module/Install/Base.pm
Criterion Covered Total %
statement 15 35 42.8
branch 0 8 0.0
condition 0 2 0.0
subroutine 7 18 38.8
pod 3 3 100.0
total 25 66 37.8


line stmt bran cond sub pod time code
1             #line 1
2             package Module::Install::Base;
3 1     1   4  
  1         1  
  1         28  
4 1     1   3 use strict 'vars';
  1         1  
  1         47  
5             use vars qw{$VERSION};
6 1     1   34 BEGIN {
7             $VERSION = '1.17';
8             }
9              
10             # Suspend handler for "redefined" warnings
11 1     1   1 BEGIN {
12 1         223 my $w = $SIG{__WARN__};
  1         18  
13             $SIG{__WARN__} = sub { $w };
14             }
15              
16             #line 42
17              
18             sub new {
19             my $class = shift;
20             unless ( defined &{"${class}::call"} ) {
21             *{"${class}::call"} = sub { shift->_top->call(@_) };
22             }
23             unless ( defined &{"${class}::load"} ) {
24             *{"${class}::load"} = sub { shift->_top->load(@_) };
25             }
26             bless { @_ }, $class;
27             }
28              
29             #line 61
30              
31             sub AUTOLOAD {
32             local $@;
33             my $func = eval { shift->_top->autoload } or return;
34             goto &$func;
35             }
36              
37             #line 75
38              
39             sub _top {
40             $_[0]->{_top};
41             }
42              
43             #line 90
44 0     0 1    
45 0 0         sub admin {
  0            
46 0     0     $_[0]->_top->{admin}
  0            
  0            
47             or
48 0 0         Module::Install::Base::FakeAdmin->new;
  0            
49 0     0     }
  0            
  0            
50              
51 0           #line 106
52              
53             sub is_admin {
54             ! $_[0]->admin->isa('Module::Install::Base::FakeAdmin');
55             }
56              
57             sub DESTROY {}
58              
59             package Module::Install::Base::FakeAdmin;
60              
61             use vars qw{$VERSION};
62             BEGIN {
63 0     0     $VERSION = $Module::Install::Base::VERSION;
64 0 0         }
  0            
65 0            
66             my $fake;
67              
68             sub new {
69             $fake ||= bless(\@_, $_[0]);
70             }
71              
72             sub AUTOLOAD {}
73              
74             sub DESTROY {}
75              
76             # Restore warning handler
77 0     0     BEGIN {
78             $SIG{__WARN__} = $SIG{__WARN__}->();
79             }
80              
81             1;
82              
83             #line 159