File Coverage

blib/lib/App/Sets/Iterator.pm
Criterion Covered Total %
statement 16 16 100.0
branch 2 2 100.0
condition n/a
subroutine 6 6 100.0
pod 0 4 0.0
total 24 28 85.7


line stmt bran cond sub pod time code
1             package App::Sets::Iterator;
2             $App::Sets::Iterator::VERSION = '0.974';
3              
4              
5 3     3   16 use strict;
  3         4  
  3         67  
6 3     3   9 use warnings;
  3         3  
  3         345  
7              
8             # ABSTRACT: convenience iterator
9              
10             sub new {
11 192     192 0 296 my ($package, $it) = @_;
12 192         1344 return bless {it => $it}, $package;
13             }
14              
15             sub head {
16 3176     3176 0 1920 my ($self) = @_;
17 3176 100       5914 return exists $self->{head} ? $self->{head} : $self->next();
18             }
19              
20             sub next {
21 2196     2196 0 1389 my ($self) = @_;
22 2196         2722 return $self->{head} = $self->{it}->();
23             }
24              
25             sub drop {
26 2004     2004 0 1408 my ($self) = @_;
27 2004         1789 my $retval = $self->head();
28 2004         1859 $self->next();
29 2004         3677 return $retval;
30             } ## end sub drop
31              
32             1;
33              
34             __END__