File Coverage

blib/lib/HTML/Zoom/TransformBuilder.pm
Criterion Covered Total %
statement 20 22 90.9
branch 1 2 50.0
condition 1 3 33.3
subroutine 5 6 83.3
pod 0 1 0.0
total 27 34 79.4


line stmt bran cond sub pod time code
1             package HTML::Zoom::TransformBuilder;
2              
3 15     15   84 use strictures 1;
  15         80  
  15         569  
4 15     15   891 use base qw(HTML::Zoom::SubObject);
  15         30  
  15         1539  
5 15     15   559 use HTML::Zoom::Transform;
  15         27  
  15         4479  
6              
7             sub new {
8 121     121 0 198 my ($class, $args) = @_;
9 121         517 my $new = $class->SUPER::new($args);
10 121   33     1123 $new->{transform} =
11             $args->{transform}
12             || HTML::Zoom::Transform->new({
13             zconfig => $new->{_zconfig},
14             selector => $args->{selector},
15             filters => [],
16             });
17 121         351 $new->{proto} = $args->{proto};
18 121         851 $new
19             }
20              
21 0     0   0 sub DESTROY {}
22              
23             sub AUTOLOAD {
24 120     120   323 my $meth = our $AUTOLOAD;
25 120         628 $meth =~ s/.*:://;
26 120         206 my $self = shift;
27 120         394 my $fb = $self->_zconfig->filter_builder;
28 120 50       727 if (my $cr = $fb->can($meth)) {
29 120         518 return $self->{proto}->with_transform(
30             $self->{transform}->with_filter($fb->$cr(@_))
31             );
32             }
33 0           die "Filter builder $fb does not provide action ${meth}";
34             }
35              
36             1;