File Coverage

inc/Module/Install/Base.pm
Criterion Covered Total %
statement 11 34 32.3
branch 0 8 0.0
condition 0 2 0.0
subroutine 5 16 31.2
pod 3 3 100.0
total 19 63 30.1


line stmt bran cond sub pod time code
1             #line 1
2             package Module::Install::Base;
3 1     1   5  
  1         1  
  1         40  
4 1     1   6 use strict 'vars';
  1         2  
  1         57  
5             use vars qw{$VERSION};
6 1     1   69 BEGIN {
7             $VERSION = '0.91';
8             }
9              
10             # Suspend handler for "redefined" warnings
11 1     1   3 BEGIN {
12 1         418 my $w = $SIG{__WARN__};
  1         35  
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->VERSION;
55             }
56              
57             sub DESTROY {}
58              
59             package Module::Install::Base::FakeAdmin;
60              
61             my $fake;
62              
63 0     0     sub new {
64 0 0         $fake ||= bless(\@_, $_[0]);
  0            
65 0           }
66              
67             sub AUTOLOAD {}
68              
69             sub DESTROY {}
70              
71             # Restore warning handler
72             BEGIN {
73             $SIG{__WARN__} = $SIG{__WARN__}->();
74             }
75              
76             1;
77 0     0      
78             #line 154