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 16     16   85 use strictures 1;
  16         90  
  16         619  
4 16     16   1157 use base qw(HTML::Zoom::SubObject);
  16         35  
  16         2190  
5 16     16   630 use HTML::Zoom::Transform;
  16         28  
  16         8016  
6              
7             sub new {
8 166     166 0 253 my ($class, $args) = @_;
9 166         629 my $new = $class->SUPER::new($args);
10 166   33     1466 $new->{transform} =
11             $args->{transform}
12             || HTML::Zoom::Transform->new({
13             zconfig => $new->{_zconfig},
14             selector => $args->{selector},
15             filters => [],
16             });
17 166         574 $new->{proto} = $args->{proto};
18 166         1042 $new
19             }
20              
21 0     0   0 sub DESTROY {}
22              
23             sub AUTOLOAD {
24 130     130   352 my $meth = our $AUTOLOAD;
25 130         839 $meth =~ s/.*:://;
26 130         215 my $self = shift;
27 130         447 my $fb = $self->_zconfig->filter_builder;
28 130 50       650 if (my $cr = $fb->can($meth)) {
29 130         520 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;