Commit | Line | Data |
---|---|---|
ecac864a | 1 | #line 1 "inc/Module/Install/Base.pm - /Library/Perl/5.8.6/Module/Install/Base.pm" |
0d5e38d1 | 2 | package Module::Install::Base; |
3 | ||
ecac864a | 4 | $VERSION = '0.57'; |
5 | ||
6 | # Suspend handler for "redefined" warnings | |
7 | BEGIN { | |
8 | my $w = $SIG{__WARN__}; | |
9 | $SIG{__WARN__} = sub { $w }; | |
10 | } | |
11 | ||
12 | ### This is the ONLY module that shouldn't have strict on | |
13 | # use strict; | |
14 | ||
15 | #line 41 | |
0d5e38d1 | 16 | |
17 | sub new { | |
18 | my ($class, %args) = @_; | |
19 | ||
ecac864a | 20 | foreach my $method ( qw(call load) ) { |
0d5e38d1 | 21 | *{"$class\::$method"} = sub { |
ecac864a | 22 | shift()->_top->$method(@_); |
0d5e38d1 | 23 | } unless defined &{"$class\::$method"}; |
24 | } | |
25 | ||
ecac864a | 26 | bless( \%args, $class ); |
0d5e38d1 | 27 | } |
28 | ||
ecac864a | 29 | #line 61 |
0d5e38d1 | 30 | |
31 | sub AUTOLOAD { | |
32 | my $self = shift; | |
ecac864a | 33 | local $@; |
34 | my $autoload = eval { $self->_top->autoload } or return; | |
35 | goto &$autoload; | |
0d5e38d1 | 36 | } |
37 | ||
ecac864a | 38 | #line 76 |
0d5e38d1 | 39 | |
40 | sub _top { $_[0]->{_top} } | |
41 | ||
ecac864a | 42 | #line 89 |
0d5e38d1 | 43 | |
44 | sub admin { | |
ecac864a | 45 | $_[0]->_top->{admin} or Module::Install::Base::FakeAdmin->new; |
0d5e38d1 | 46 | } |
47 | ||
48 | sub is_admin { | |
ecac864a | 49 | $_[0]->admin->VERSION; |
0d5e38d1 | 50 | } |
51 | ||
52 | sub DESTROY {} | |
53 | ||
54 | package Module::Install::Base::FakeAdmin; | |
55 | ||
56 | my $Fake; | |
57 | sub new { $Fake ||= bless(\@_, $_[0]) } | |
ecac864a | 58 | |
0d5e38d1 | 59 | sub AUTOLOAD {} |
ecac864a | 60 | |
0d5e38d1 | 61 | sub DESTROY {} |
62 | ||
ecac864a | 63 | # Restore warning handler |
64 | BEGIN { | |
65 | $SIG{__WARN__} = $SIG{__WARN__}->(); | |
66 | } | |
0d5e38d1 | 67 | |
ecac864a | 68 | 1; |
0d5e38d1 | 69 | |
ecac864a | 70 | #line 138 |