Load XML-Feed-0.08 into trunk.
[catagits/XML-Feed.git] / inc / Module / Install / Base.pm
CommitLineData
ecac864a 1#line 1 "inc/Module/Install/Base.pm - /Library/Perl/5.8.6/Module/Install/Base.pm"
0d5e38d1 2package Module::Install::Base;
3
ecac864a 4$VERSION = '0.57';
5
6# Suspend handler for "redefined" warnings
7BEGIN {
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
17sub 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
31sub 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
40sub _top { $_[0]->{_top} }
41
ecac864a 42#line 89
0d5e38d1 43
44sub admin {
ecac864a 45 $_[0]->_top->{admin} or Module::Install::Base::FakeAdmin->new;
0d5e38d1 46}
47
48sub is_admin {
ecac864a 49 $_[0]->admin->VERSION;
0d5e38d1 50}
51
52sub DESTROY {}
53
54package Module::Install::Base::FakeAdmin;
55
56my $Fake;
57sub new { $Fake ||= bless(\@_, $_[0]) }
ecac864a 58
0d5e38d1 59sub AUTOLOAD {}
ecac864a 60
0d5e38d1 61sub DESTROY {}
62
ecac864a 63# Restore warning handler
64BEGIN {
65 $SIG{__WARN__} = $SIG{__WARN__}->();
66}
0d5e38d1 67
ecac864a 681;
0d5e38d1 69
ecac864a 70#line 138