~titusx/nginx/module-substitutions

« back to all changes in this revision

Viewing changes to test/inc/Module/Install/Base.pm

  • Committer: Weibin Yao
  • Date: 2010-08-11 08:36:05 UTC
  • mfrom: (10.1.19)
  • Revision ID: git-v1:69c4c8dfe2c82aeabf8d6c5736b134c7dadaeb73
merge from the develop branch, r37


git-svn-id: http://substitutions4nginx.googlecode.com/svn/trunk@38 184bbb60-1f5e-11de-b650-e715bd6d7cf1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#line 1
 
2
package Module::Install::Base;
 
3
 
 
4
use strict 'vars';
 
5
use vars qw{$VERSION};
 
6
BEGIN {
 
7
        $VERSION = '0.91';
 
8
}
 
9
 
 
10
# Suspend handler for "redefined" warnings
 
11
BEGIN {
 
12
        my $w = $SIG{__WARN__};
 
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
 
 
45
sub admin {
 
46
        $_[0]->_top->{admin}
 
47
        or
 
48
        Module::Install::Base::FakeAdmin->new;
 
49
}
 
50
 
 
51
#line 106
 
52
 
 
53
sub is_admin {
 
54
        $_[0]->admin->VERSION;
 
55
}
 
56
 
 
57
sub DESTROY {}
 
58
 
 
59
package Module::Install::Base::FakeAdmin;
 
60
 
 
61
my $fake;
 
62
 
 
63
sub new {
 
64
        $fake ||= bless(\@_, $_[0]);
 
65
}
 
66
 
 
67
sub AUTOLOAD {}
 
68
 
 
69
sub DESTROY {}
 
70
 
 
71
# Restore warning handler
 
72
BEGIN {
 
73
        $SIG{__WARN__} = $SIG{__WARN__}->();
 
74
}
 
75
 
 
76
1;
 
77
 
 
78
#line 154