File Coverage

inc/Module/Install/Base.pm
Criterion Covered Total %
statement 21 34 61.7
branch 2 8 25.0
condition 0 2 0.0
subroutine 6 16 37.5
pod 0 3 0.0
total 29 63 46.0


line stmt bran cond sub pod time code
1             #line 1
2             package Module::Install::Base;
3 2     2   13  
  2         5  
  2         72  
4 2     2   15 use strict 'vars';
  2         11  
  2         118  
5             use vars qw{$VERSION};
6 2     2   105 BEGIN {
7             $VERSION = '0.92';
8             }
9              
10             # Suspend handler for "redefined" warnings
11 2     2   7 BEGIN {
12 2         1210 my $w = $SIG{__WARN__};
  2         60  
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 1     1 0 19  
45 1 50       3 sub admin {
  1         12  
46 1     0   7 $_[0]->_top->{admin}
  1         18  
  0         0  
47             or
48 1 50       2 Module::Install::Base::FakeAdmin->new;
  1         10  
49 1     0   5 }
  1         5  
  0         0  
50              
51 1         5 #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