factor out ArrayStream, update new stream types to respect peek
[catagits/HTML-Zoom.git] / lib / HTML / Zoom / StreamBase.pm
index c04c7b6..a733656 100644 (file)
@@ -11,12 +11,25 @@ sub peek {
   if (exists $self->{_peeked}) {
     return ($self->{_peeked});
   }
-  if (my ($peeked) = $self->next) {
+  if (my ($peeked) = $self->_next) {
     return ($self->{_peeked} = $peeked);
   }
   return;
 }
 
+sub next {
+  my ($self) = @_;
+
+  # peeked entry so return that
+
+  if (exists $self->{_peeked}) {
+    return (delete $self->{_peeked});
+  }
+
+  $self->_next;
+}
+
+
 sub flatten {
   my $self = shift;
   require HTML::Zoom::FlattenedStream;