/[vz-tools]/trunk/inc/Module/Install/Base.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/inc/Module/Install/Base.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 52 - (hide annotations)
Fri Aug 15 09:59:29 2008 UTC (15 years, 8 months ago) by dpavlin
File size: 1064 byte(s)
update Module::Install
1 dpavlin 34 #line 1
2     package Module::Install::Base;
3    
4 dpavlin 52 $VERSION = '0.76';
5 dpavlin 34
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
16    
17     sub new {
18     my ($class, %args) = @_;
19    
20     foreach my $method ( qw(call load) ) {
21     *{"$class\::$method"} = sub {
22     shift()->_top->$method(@_);
23     } unless defined &{"$class\::$method"};
24     }
25    
26     bless( \%args, $class );
27     }
28    
29     #line 61
30    
31     sub AUTOLOAD {
32     my $self = shift;
33     local $@;
34     my $autoload = eval { $self->_top->autoload } or return;
35     goto &$autoload;
36     }
37    
38     #line 76
39    
40     sub _top { $_[0]->{_top} }
41    
42     #line 89
43    
44     sub admin {
45     $_[0]->_top->{admin} or Module::Install::Base::FakeAdmin->new;
46     }
47    
48 dpavlin 52 #line 101
49    
50 dpavlin 34 sub is_admin {
51     $_[0]->admin->VERSION;
52     }
53    
54     sub DESTROY {}
55    
56     package Module::Install::Base::FakeAdmin;
57    
58     my $Fake;
59     sub new { $Fake ||= bless(\@_, $_[0]) }
60    
61     sub AUTOLOAD {}
62    
63     sub DESTROY {}
64    
65     # Restore warning handler
66     BEGIN {
67     $SIG{__WARN__} = $SIG{__WARN__}->();
68     }
69    
70     1;
71    
72 dpavlin 52 #line 146

  ViewVC Help
Powered by ViewVC 1.1.26