File Coverage

lib/Test/Tester/Delegate.pm
Criterion Covered Total %
statement 26 27 96.3
branch 2 4 50.0
condition n/a
subroutine 7 7 100.0
pod 0 2 0.0
total 35 40 87.5


line stmt bran cond sub pod time code
1 6     6   41 use strict;
  6         27  
  6         193  
2 6     6   31 use warnings;
  6         13  
  6         329  
3              
4             package Test::Tester::Delegate;
5              
6             our $VERSION = '1.302182';
7              
8 6     6   40 use Scalar::Util();
  6         19  
  6         169  
9              
10 6     6   33 use vars '$AUTOLOAD';
  6         13  
  6         1558  
11              
12             sub new
13             {
14 6     6 0 15 my $pkg = shift;
15              
16 6         62 my $obj = shift;
17 6         18 my $self = bless {}, $pkg;
18              
19 6         18 return $self;
20             }
21              
22             sub AUTOLOAD
23             {
24 73     73   1203 my ($sub) = $AUTOLOAD =~ /.*::(.*?)$/;
25              
26 73 50       225 return if $sub eq "DESTROY";
27              
28 73         185 my $obj = $_[0]->{Object};
29              
30 73         246 my $ref = $obj->can($sub);
31 73         153 shift(@_);
32 73         135 unshift(@_, $obj);
33 73         288 goto &$ref;
34             }
35              
36             sub can {
37 1     1 0 10 my $this = shift;
38 1         4 my ($sub) = @_;
39              
40 1 50       17 return $this->{Object}->can($sub) if Scalar::Util::blessed($this);
41              
42 0           return $this->SUPER::can(@_);
43             }
44              
45             1;