add strictures commit (out of order)
[catagits/HTML-Zoom.git] / lib / HTML / Zoom / TransformBuilder.pm
CommitLineData
eeeb0921 1package HTML::Zoom::TransformBuilder;
2
1cf03540 3use strictures 1;
eeeb0921 4use base qw(HTML::Zoom::SubObject);
a88c1c57 5use HTML::Zoom::Transform;
eeeb0921 6
7sub new {
8 my ($class, $args) = @_;
9 my $new = $class->SUPER::new($args);
10 $new->{transform} =
11 $args->{transform}
12 || HTML::Zoom::Transform->new({
13 zconfig => $new->{_zconfig},
14 selector => $args->{selector},
15 filters => [],
16 });
17 $new->{proto} = $args->{proto};
18 $new
19}
20
21sub DESTROY {}
22
23sub AUTOLOAD {
24 my $meth = our $AUTOLOAD;
25 $meth =~ s/.*:://;
26 my $self = shift;
27 my $fb = $self->_zconfig->filter_builder;
28 if (my $cr = $fb->can($meth)) {
29 return $self->{proto}->with_transform(
30 $self->{transform}->with_filter($fb->$cr(@_))
31 );
32 }
33 die "Filter builder $fb does not provide action ${meth}";
34}
35
361;