File Coverage

blib/lib/DTL/Fast/Filter/Removetags.pm
Criterion Covered Total %
statement 21 21 100.0
branch 1 2 50.0
condition n/a
subroutine 6 6 100.0
pod 0 2 0.0
total 28 31 90.3


line stmt bran cond sub pod time code
1             package DTL::Fast::Filter::Removetags;
2 2     2   756 use strict;
  2         4  
  2         46  
3 2     2   9 use utf8;
  2         4  
  2         11  
4 2     2   39 use warnings FATAL => 'all';
  2         3  
  2         60  
5 2     2   8 use parent 'DTL::Fast::Filter';
  2         4  
  2         10  
6              
7             $DTL::Fast::FILTER_HANDLERS{removetags} = __PACKAGE__;
8              
9             #@Override
10             sub parse_parameters
11             {
12 3     3 0 6 my $self = shift;
13             die $self->get_parse_error("no tags to remove specified")
14 3 50       4 if (not scalar @{$self->{parameter}});
  3         9  
15 3         7 $self->{tags} = $self->{parameter}->[0];
16 3         7 return $self;
17             }
18              
19             #@Override
20             sub filter
21             {
22 3     3 0 8 my ( $self, $filter_manager, $value, $context ) = @_;
23              
24 3         9 my $tags_re = join '|', (split /\s+/, $self->{tags}->render($context));
25              
26 3         78 $value =~ s/<\/?($tags_re)[^>]*?>//gsi;
27              
28 3         14 return $value;
29             }
30              
31             1;