File Coverage

blib/lib/TableDataRole/Util/GetRowByPos.pm
Criterion Covered Total %
statement 11 35 31.4
branch 0 6 0.0
condition n/a
subroutine 4 7 57.1
pod 0 3 0.0
total 15 51 29.4


line stmt bran cond sub pod time code
1             package TableDataRole::Util::GetRowByPos;
2              
3 1     1   354300 use 5.010001;
  1         4  
4 1     1   7 use strict;
  1         2  
  1         37  
5 1     1   6 use warnings;
  1         2  
  1         73  
6              
7 1     1   613 use Role::Tiny;
  1         7423  
  1         9  
8              
9             our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
10             our $DATE = '2024-05-14'; # DATE
11             our $DIST = 'TableDataRoles-Standard'; # DIST
12             our $VERSION = '0.025'; # VERSION
13              
14             requires 'reset_iterator';
15             requires 'has_next_item';
16             requires 'get_next_item';
17             requires 'get_next_row_hashref';
18             with 'TableDataRole::Spec::GetRowByPos';
19              
20             sub has_item_at_pos {
21 0     0 0   my ($self, $index) = @_;
22 0           $self->reset_iterator;
23 0           my $i = 0;
24             # XXX implement caching?
25 0           while ($i < $index) {
26 0 0         die "StopIteration" unless $self->has_next_item;
27 0           $self->get_next_item;
28 0           $i++;
29             }
30 0           $self->has_next_item;
31             }
32              
33             sub get_item_at_pos {
34 0     0 0   my ($self, $index) = @_;
35 0           $self->reset_iterator;
36 0           my $i = 0;
37             # XXX implement caching?
38 0           while ($i < $index) {
39 0 0         die "StopIteration" unless $self->has_next_item;
40 0           $self->get_next_item;
41 0           $i++;
42             }
43 0           $self->get_next_item;
44             }
45              
46             sub get_row_at_pos_hashref {
47 0     0 0   my ($self, $index) = @_;
48 0           $self->reset_iterator;
49 0           my $i = 0;
50             # XXX implement caching?
51 0           while ($i < $index) {
52 0 0         die "StopIteration" unless $self->has_next_item;
53 0           $self->get_next_item;
54 0           $i++;
55             }
56 0           $self->get_next_row_hashref;
57             }
58              
59             1;
60             # ABSTRACT: Provide TableDataRole::Spec::GetRowByPos methods using iteration
61              
62             __END__