File Coverage

inc/Module/Install/Base.pm
Criterion Covered Total %
statement 15 38 39.4
branch 0 8 0.0
condition 0 2 0.0
subroutine 7 18 38.8
pod 3 3 100.0
total 25 69 36.2


line stmt bran cond sub pod time code
1             #line 1
2             package Module::Install::Base;
3 1     1   5
  1         2  
  1         35  
4 1     1   6 use strict 'vars';
  1         3  
  1         51  
5             use vars qw{$VERSION};
6 1     1   43 BEGIN {
7             $VERSION = '1.00';
8             }
9            
10             # Suspend handler for "redefined" warnings
11 1     1   2 BEGIN {
12 1         446 my $w = $SIG{__WARN__};
  1         26  
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