Synch with CPAN Test-Simple 1.302140.
[perl.git] / cpan / Test-Simple / lib / Test / Tester / Delegate.pm
1 use strict;
2 use warnings;
3
4 package Test::Tester::Delegate;
5
6 our $VERSION = '1.302140';
7
8 use Scalar::Util();
9
10 use vars '$AUTOLOAD';
11
12 sub new
13 {
14         my $pkg = shift;
15
16         my $obj = shift;
17         my $self = bless {}, $pkg;
18
19         return $self;
20 }
21
22 sub AUTOLOAD
23 {
24         my ($sub) = $AUTOLOAD =~ /.*::(.*?)$/;
25
26         return if $sub eq "DESTROY";
27
28         my $obj = $_[0]->{Object};
29
30         my $ref = $obj->can($sub);
31         shift(@_);
32         unshift(@_, $obj);
33         goto &$ref;
34 }
35
36 sub can {
37         my $this = shift;
38         my ($sub) = @_;
39
40         return $this->{Object}->can($sub) if Scalar::Util::blessed($this);
41
42         return $this->SUPER::can(@_);
43 }
44
45 1;