change metadata since I'll be maintaining this package
[catagits/Catalyst-Engine-SCGI.git] / inc / Module / Install / Base.pm
CommitLineData
bc5a6228 1#line 1
2package Module::Install::Base;
3
4use strict 'vars';
5use vars qw{$VERSION};
6BEGIN {
7 $VERSION = '0.91';
8}
9
10# Suspend handler for "redefined" warnings
11BEGIN {
12 my $w = $SIG{__WARN__};
13 $SIG{__WARN__} = sub { $w };
14}
15
16#line 42
17
18sub 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
31sub AUTOLOAD {
32 local $@;
33 my $func = eval { shift->_top->autoload } or return;
34 goto &$func;
35}
36
37#line 75
38
39sub _top {
40 $_[0]->{_top};
41}
42
43#line 90
44
45sub admin {
46 $_[0]->_top->{admin}
47 or
48 Module::Install::Base::FakeAdmin->new;
49}
50
51#line 106
52
53sub is_admin {
54 $_[0]->admin->VERSION;
55}
56
57sub DESTROY {}
58
59package Module::Install::Base::FakeAdmin;
60
61my $fake;
62
63sub new {
64 $fake ||= bless(\@_, $_[0]);
65}
66
67sub AUTOLOAD {}
68
69sub DESTROY {}
70
71# Restore warning handler
72BEGIN {
73 $SIG{__WARN__} = $SIG{__WARN__}->();
74}
75
761;
77
78#line 154