factor out ArrayStream, update new stream types to respect peek
[catagits/HTML-Zoom.git] / lib / HTML / Zoom / CodeStream.pm
index 1d70a58..0755a3b 100644 (file)
@@ -4,29 +4,13 @@ use strict;
 use warnings FATAL => 'all';
 use base qw(HTML::Zoom::StreamBase);
 
-sub from_array {
-  my ($class, @array) = @_;
-  $class->new({ code => sub {
-    return unless @array;
-    return shift @array;
-  }});
-}
-
 sub new {
   my ($class, $args) = @_;
   bless({ _code => $args->{code}, _zconfig => $args->{zconfig} }, $class);
 }
 
-sub next {
-  my ($self) = @_;
-
-  # peeked entry so return that
-
-  if (exists $self->{_peeked}) {
-    return (delete $self->{_peeked});
-  }
-
-  $self->{_code}->();
+sub _next {
+  $_[0]->{_code}->();
 }
 
 1;