File Coverage

blib/lib/DTL/Fast/Tag/Extends.pm
Criterion Covered Total %
statement 20 20 100.0
branch 2 4 50.0
condition 0 4 0.0
subroutine 6 6 100.0
pod 0 1 0.0
total 28 35 80.0


line stmt bran cond sub pod time code
1             package DTL::Fast::Tag::Extends;
2 1     1   357 use strict; use utf8; use warnings FATAL => 'all';
  1     1   1  
  1     1   21  
  1         4  
  1         2  
  1         5  
  1         18  
  1         1  
  1         26  
3 1     1   2 use parent 'DTL::Fast::Tag::Simple';
  1         1  
  1         3  
4              
5             $DTL::Fast::TAG_HANDLERS{'extends'} = __PACKAGE__;
6              
7 1     1   61 use DTL::Fast::Template;
  1         1  
  1         116  
8              
9             #@Override
10             sub parse_parameters
11             {
12 14     14 0 19 my $self = shift;
13            
14             die $self->get_parse_error("parent template was not specified")
15 14 50       31 if not $self->{'parameter'};
16            
17             die $self->get_parse_error(
18             sprintf("Multiple extends specified in the template:\n\%s\n\%s\n"
19             , $DTL::Fast::Template::CURRENT_TEMPLATE->{'extends'}->{'original'} // 'undef'
20             , $self->{'parameter'} // 'undef'
21             )
22 14 50 0     28 ) if $DTL::Fast::Template::CURRENT_TEMPLATE->{'extends'};
      0        
23            
24 14         83 $DTL::Fast::Template::CURRENT_TEMPLATE->{'extends'} = DTL::Fast::Variable->new($self->{'parameter'});
25            
26 14         23 return;
27             }
28              
29             1;