bump version
[catagits/HTML-Zoom.git] / lib / HTML / Zoom.pm
index 402ca1f..e92e25c 100644 (file)
@@ -6,8 +6,9 @@ use HTML::Zoom::ZConfig;
 use HTML::Zoom::ReadFH;
 use HTML::Zoom::Transform;
 use HTML::Zoom::TransformBuilder;
+use Scalar::Util ();
 
-our $VERSION = '0.009004';
+our $VERSION = '0.009008';
 
 $VERSION = eval $VERSION;
 
@@ -149,6 +150,20 @@ sub then {
   $self->select($self->{transforms}->[-1]->selector);
 }
 
+sub AUTOLOAD {
+  my ($self, $selector, @args) = @_;
+  my $sel = $self->select($selector);
+  my $meth = our $AUTOLOAD;
+  $meth =~ s/.*:://;
+  if(my $cr = $sel->_zconfig->filter_builder->can($meth)) {
+    return $sel->$meth(@args);
+  } else {
+    die "We can't do $meth on ->select('$selector')";
+  }
+}
+
+sub DESTROY {}
+
 1;
 
 =head1 NAME
@@ -617,6 +632,12 @@ zoom instance with that as the source HTML to be transformed.
 
 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;
@@ -665,6 +686,14 @@ sugar, the following is entirely equivalent:
 
   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;
@@ -717,6 +746,20 @@ together; the intermediary object isn't designed or expected to stick around.
 Re-runs the previous select to allow you to chain actions together on the
 same selector.
 
+=head1 AUTOLOAD METHODS
+
+L<HTML::Zoom> AUTOLOADS methods against L</select> so that you can reduce a
+certain amount of boilerplate typing.  This allows you to replace:
+
+  $z->select('div')->replace_content("Hello World");
+  
+With:
+
+  $z->replace_content(div => "Hello World");
+  
+Besides saving a few keys per invocations, you may feel this looks neater
+in your code and increases understanding.
+
 =head1 AUTHOR
 
 mst - Matt S. Trout (cpan:MSTROUT) <mst@shadowcat.co.uk>
@@ -727,7 +770,7 @@ Oliver Charles
 
 Jakub Nareski
 
-Simon Elliot
+Simon Elliott
 
 Joe Highton
 
@@ -735,6 +778,8 @@ John Napiorkowski
 
 Robert Buels
 
+David Dorward
+
 =head1 COPYRIGHT
 
 Copyright (c) 2010-2011 the HTML::Zoom L</AUTHOR> and L</CONTRIBUTORS>