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   70 use strictures 1;
  11         87  
  11         325  
4 11     11   1281 use base qw(HTML::Zoom::StreamBase);
  11         202  
  11         3290  
5              
6             sub new {
7 131     131 0 208 my ($class, $args) = @_;
8 131         1111 bless({ _source => $args->{source}, _zconfig => $args->{zconfig} }, $class);
9             }
10              
11             sub _next {
12              
13 669 50   669   1696 return unless (my $self = shift)->{_source};
14 669         678 my ($next, $s);
15 669 100       2685 until (($next) = ($s = $self->{_cur}) ? $s->next : ()) {
16 396 100       1452 unless (($self->{_cur}) = $self->{_source}->next) {
17 131         408 delete $self->{_source}; return;
  131         752  
18             }
19             }
20 538         4072 return $next;
21             }
22              
23             1;