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 2     2   11  
  2         2  
  2         61  
4 2     2   11 use strict 'vars';
  2         4  
  2         72  
5             use vars qw{$VERSION};
6 2     2   118 BEGIN {
7             $VERSION = '0.91';
8             }
9              
10             # Suspend handler for "redefined" warnings
11 2     2   5 BEGIN {
12 2         790 my $w = $SIG{__WARN__};
  2         74  
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