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   67 use strictures 1;
  15         63  
  15         297  
4 15     15   956 use base qw(HTML::Zoom::SubObject);
  15         22  
  15         1250  
5 15     15   410 use HTML::Zoom::Transform;
  15         24  
  15         3680  
6              
7             sub new {
8 166     166 0 216 my ($class, $args) = @_;
9 166         508 my $new = $class->SUPER::new($args);
10 166   33     1088 $new->{transform} =
11             $args->{transform}
12             || HTML::Zoom::Transform->new({
13             zconfig => $new->{_zconfig},
14             selector => $args->{selector},
15             filters => [],
16             });
17 166         335 $new->{proto} = $args->{proto};
18 166         805 $new
19             }
20              
21 0     0   0 sub DESTROY {}
22              
23             sub AUTOLOAD {
24 130     130   275 my $meth = our $AUTOLOAD;
25 130         645 $meth =~ s/.*:://;
26 130         170 my $self = shift;
27 130         322 my $fb = $self->_zconfig->filter_builder;
28 130 50       541 if (my $cr = $fb->can($meth)) {
29 130         419 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;