File Coverage

blib/lib/Data/Page/NoTotalEntries.pm
Criterion Covered Total %
statement 29 29 100.0
branch 12 14 85.7
condition n/a
subroutine 9 9 100.0
pod 5 5 100.0
total 55 57 96.4


line stmt bran cond sub pod time code
1             package Data::Page::NoTotalEntries;
2 2     2   212738 use strict;
  2         5  
  2         76  
3 2     2   11 use warnings;
  2         4  
  2         60  
4 2     2   55 use 5.008001;
  2         12  
  2         173  
5             our $VERSION = '0.02';
6             use Class::Accessor::Lite 0.05 (
7 2         18 new => 1,
8             rw => [qw/has_next entries_per_page current_page entries_on_this_page/]
9 2     2   92029 );
  2         5023  
10              
11             sub next_page {
12 4     4 1 4836 my $self = shift;
13 4 100       13 $self->has_next ? $self->current_page + 1 : undef;
14             }
15              
16 4     4 1 1063 sub previous_page { goto &prev_page }
17             sub prev_page {
18 8     8 1 797 my $self = shift;
19 8 100       25 $self->current_page > 1 ? $self->current_page - 1 : undef;
20             }
21              
22             sub first {
23 5     5 1 1069 my $self = shift;
24 5 50       13 Carp::croak("'first' method requires 'entries_on_this_page'") unless defined $self->entries_on_this_page;
25              
26 5 100       37 if ( $self->entries_on_this_page == 0 ) {
27 1         8 return 0;
28             }
29             else {
30 4         26 return ( ( $self->current_page - 1 ) * $self->entries_per_page ) + 1;
31             }
32             }
33              
34             sub last {
35 4     4 1 1048 my $self = shift;
36 4 50       13 Carp::croak("'last' method requires 'entries_on_this_page'") unless defined $self->entries_on_this_page;
37              
38 4 100       38 if ( !$self->has_next ) {
39 2 100       20 if ($self->entries_on_this_page == 0) {
40 1         8 return 0;
41             } else {
42 1         8 return $self->first + $self->entries_on_this_page - 1;
43             }
44             }
45             else {
46 2         15 return ( $self->current_page * $self->entries_per_page );
47             }
48             }
49              
50             1;
51             __END__