File Coverage

blib/lib/DTL/Fast/Filter/Cut.pm
Criterion Covered Total %
statement 24 24 100.0
branch 1 2 50.0
condition n/a
subroutine 7 7 100.0
pod 0 2 0.0
total 32 35 91.4


line stmt bran cond sub pod time code
1             package DTL::Fast::Filter::Cut;
2 2     2   773 use strict; use utf8; use warnings FATAL => 'all';
  2     2   2  
  2     2   43  
  2         6  
  2         2  
  2         8  
  2         34  
  2         2  
  2         85  
3 2     2   7 use parent 'DTL::Fast::Filter';
  2         3  
  2         15  
4              
5             $DTL::Fast::FILTER_HANDLERS{'cut'} = __PACKAGE__;
6              
7 2     2   100 use DTL::Fast::Variable;
  2         2  
  2         220  
8              
9              
10             #@Override
11             sub parse_parameters
12             {
13 4     4 0 4 my $self = shift;
14             die $self->get_parse_error("no substitute specified for removing")
15 4 50       3 if not scalar @{$self->{'parameter'}};
  4         6  
16 4         5 $self->{'remove'} = $self->{'parameter'}->[0];
17 4         9 return $self;
18             }
19              
20             #@Override
21             sub filter
22             {
23 4     4 0 5 my ($self, $filter_manager, $value, $context) = @_;
24            
25 4         8 my $remove = $self->{'remove'}->render($context);
26 4         36 $value =~ s/\Q$remove\E//gs;
27            
28 4         11 return $value;
29             }
30              
31             1;