Fix ->repeat with iterator, make t/repeat.t pass (formerly t/todo-repeat.t)
[catagits/HTML-Zoom.git] / lib / HTML / Zoom / FilterBuilder.pm
index 50398b3..eff9b2d 100644 (file)
@@ -246,7 +246,9 @@ sub repeat {
     };
   }
   my $repeater = sub {
-    my $s = $self->_stream_from_proto($repeat_for);
+    my $s = ref($repeat_for) eq 'CODE'
+      ? $self->_stream_from_code($repeat_for) # $repeat_for is iterator
+      : $self->_stream_from_proto($repeat_for);
     # We have to test $repeat_between not @between here because
     # at the point we're constructing our return stream @between
     # hasn't been populated yet - but we can test @between in the