use HTML::Zoom::TransformBuilder;
use Scalar::Util ();
-our $VERSION = '0.009005';
+our $VERSION = '0.009006';
$VERSION = eval $VERSION;
my $sel = $self->select($selector);
my $meth = our $AUTOLOAD;
$meth =~ s/.*:://;
- if(my $cr = $sel->_zconfig->filter_builder->can($meth)) {
+ if (ref($selector) eq 'HASH') {
+ my $ret = $self;
+ $ret = $ret->_do($_, $meth, @{$selector->{$_}}) for keys %$selector;
+ $ret;
+ } else {
+ $self->_do($selector, $meth, @args);
+ }
+}
+
+sub _do {
+ my ($self, $selector, $meth, @args) = @_;
+ my $sel = $self->select($selector);
+ if( my $cr = $sel->_zconfig->filter_builder->can($meth)) {
return $sel->$meth(@args);
} else {
die "We can't do $meth on ->select('$selector')";
Convenience method - slurps the contents of $file and calls from_html with it.
+=head2 from_events
+
+ my $zoom = HTML::Zoom->from_events($evt);
+
+Create a new Zoom object from collected events
+
=head2 to_stream
my $stream = $zoom->to_stream;
my $z2 = $sub->($z1);
+=head2 apply_if
+
+ my $z2 = $z1->apply_if($cond, sub {
+ $_->select('div')->replace_content('I AM A DIV!') })
+ });
+
+->apply but will only run the tranform if $cond is true
+
=head2 to_html
my $html = $zoom->to_html;
Jakub Nareski
-Simon Elliot
+Simon Elliott
Joe Highton
Robert Buels
+David Dorward
+
=head1 COPYRIGHT
Copyright (c) 2010-2011 the HTML::Zoom L</AUTHOR> and L</CONTRIBUTORS>