File Coverage

blib/lib/HTML/Zoom/FlattenedStream.pm
Criterion Covered Total %
statement 15 15 100.0
branch 5 6 83.3
condition n/a
subroutine 4 4 100.0
pod 0 1 0.0
total 24 26 92.3


line stmt bran cond sub pod time code
1             package HTML::Zoom::FlattenedStream;
2              
3 11     11   63 use strictures 1;
  11         92  
  11         327  
4 11     11   921 use base qw(HTML::Zoom::StreamBase);
  11         21  
  11         2971  
5              
6             sub new {
7 135     135 0 453 my ($class, $args) = @_;
8 135         1129 bless({ _source => $args->{source}, _zconfig => $args->{zconfig} }, $class);
9             }
10              
11             sub _next {
12              
13 685 50   685   2882 return unless (my $self = shift)->{_source};
14 685         776 my ($next, $s);
15 685 100       2496 until (($next) = ($s = $self->{_cur}) ? $s->next : ()) {
16 406 100       1730 unless (($self->{_cur}) = $self->{_source}->next) {
17 133         401 delete $self->{_source}; return;
  133         738  
18             }
19             }
20 552         3218 return $next;
21             }
22              
23             1;