blib/lib/Method/Cascade.pm | |||
---|---|---|---|
Criterion | Covered | Total | % |
statement | 16 | 16 | 100.0 |
branch | n/a | ||
condition | n/a | ||
subroutine | 5 | 5 | 100.0 |
pod | 0 | 1 | 0.0 |
total | 21 | 22 | 95.4 |
line | stmt | bran | cond | sub | pod | time | code |
---|---|---|---|---|---|---|---|
1 | package Method::Cascade; | ||||||
2 | |||||||
3 | 1 | 1 | 27527 | use strict; | |||
1 | 2 | ||||||
1 | 90 | ||||||
4 | |||||||
5 | our $VERSION = '0.101'; | ||||||
6 | |||||||
7 | require Exporter; | ||||||
8 | 1 | 1 | 5 | use base 'Exporter'; | |||
1 | 1 | ||||||
1 | 145 | ||||||
9 | our @EXPORT = qw(cascade); | ||||||
10 | |||||||
11 | |||||||
12 | sub cascade { | ||||||
13 | 3 | 3 | 0 | 23 | my $wrapped = shift; | ||
14 | 3 | 30 | return bless { w => $wrapped, }, 'Method::Cascade::Wrapper'; | ||||
15 | } | ||||||
16 | |||||||
17 | |||||||
18 | package Method::Cascade::Wrapper; | ||||||
19 | |||||||
20 | 1 | 1 | 4 | use strict; | |||
1 | 16 | ||||||
1 | 101 | ||||||
21 | |||||||
22 | our $AUTOLOAD; | ||||||
23 | |||||||
24 | sub AUTOLOAD { | ||||||
25 | 6 | 6 | 9 | my $self = shift; | |||
26 | |||||||
27 | 6 | 11 | my $method = $AUTOLOAD; | ||||
28 | 6 | 24 | $method =~ s/.*://; | ||||
29 | |||||||
30 | 6 | 26 | $self->{w}->$method(@_); | ||||
31 | |||||||
32 | 6 | 38 | return $self; | ||||
33 | } | ||||||
34 | |||||||
35 | 1; | ||||||
36 | |||||||
37 | |||||||
38 | __END__ |