File Coverage

blib/lib/DTL/Fast/Filter/Last.pm
Criterion Covered Total %
statement 16 17 94.1
branch 1 2 50.0
condition 0 4 0.0
subroutine 5 5 100.0
pod 0 1 0.0
total 22 29 75.8


line stmt bran cond sub pod time code
1             package DTL::Fast::Filter::Last;
2 2     2   1159 use strict; use utf8; use warnings FATAL => 'all';
  2     2   5  
  2     2   47  
  2         9  
  2         3  
  2         11  
  2         46  
  2         5  
  2         69  
3 2     2   9 use parent 'DTL::Fast::Filter';
  2         4  
  2         11  
4              
5             $DTL::Fast::FILTER_HANDLERS{'last'} = __PACKAGE__;
6              
7             #@Override
8             sub filter
9             {
10 2     2 0 3 my( $self, $filter_manager, $value, $context ) = @_;
11              
12 2 50       7 if( ref $value eq 'ARRAY' )
13             {
14 2         4 $value = $value->[-1];
15             }
16             else
17             {
18 0   0     0 die $self->get_render_error(
      0        
19             $context,
20             sprintf(
21             "last filter may be applied only to an ARRAY reference, not %s (%s)"
22             , $value // 'undef'
23             , ref $value || 'SCALAR'
24             )
25             );
26             }
27            
28 2         7 return $value;
29             }
30              
31             1;