introduce ZConfig system, first cut at HTML::Zoom itself
[catagits/HTML-Zoom.git] / lib / HTML / Zoom / FilterStream.pm
index c698159..e6d7a83 100644 (file)
@@ -2,6 +2,7 @@ package HTML::Zoom::FilterStream;
 
 use strict;
 use warnings FATAL => 'all';
+use base qw(HTML::Zoom::StreamBase);
 
 sub new {
   my ($class, $args) = @_;
@@ -10,6 +11,7 @@ sub new {
       _stream => $args->{stream},
       _match => $args->{match},
       _filter => $args->{filter},
+      _zconfig => $args->{zconfig},
     },
     $class
   );
@@ -18,6 +20,12 @@ sub new {
 sub next {
   my ($self) = @_;
 
+  # peeked entry so return that
+
+  if (exists $self->{_peeked}) {
+    return (delete $self->{_peeked});
+  }
+
   # if our main stream is already gone then we can short-circuit
   # straight out - there's no way for an alternate stream to be there