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   46 use strictures 1;
  11         66  
  11         264  
4 11     11   813 use base qw(HTML::Zoom::StreamBase);
  11         15  
  11         2128  
5              
6             sub new {
7 135     135 0 155 my ($class, $args) = @_;
8 135         776 bless({ _source => $args->{source}, _zconfig => $args->{zconfig} }, $class);
9             }
10              
11             sub _next {
12              
13 685 50   685   1293 return unless (my $self = shift)->{_source};
14 685         557 my ($next, $s);
15 685 100       1742 until (($next) = ($s = $self->{_cur}) ? $s->next : ()) {
16 406 100       963 unless (($self->{_cur}) = $self->{_source}->next) {
17 133         294 delete $self->{_source}; return;
  133         513  
18             }
19             }
20 552         2197 return $next;
21             }
22              
23             1;