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   380 use strict;
  1         1  
  1         23  
3 1     1   4 use utf8;
  1         2  
  1         4  
4 1     1   23 use warnings FATAL => 'all';
  1         1  
  1         25  
5 1     1   4 use parent 'DTL::Fast::Tag::Simple';
  1         2  
  1         4  
6              
7             $DTL::Fast::TAG_HANDLERS{extends} = __PACKAGE__;
8              
9 1     1   64 use DTL::Fast::Template;
  1         2  
  1         109  
10              
11             #@Override
12             sub parse_parameters
13             {
14 14     14 0 21 my $self = shift;
15              
16             die $self->get_parse_error("parent template was not specified")
17 14 50       34 if (not $self->{parameter});
18              
19             die $self->get_parse_error(
20             sprintf("Multiple extends specified in the template:\n\%s\n\%s\n"
21             , $DTL::Fast::Template::CURRENT_TEMPLATE->{extends}->{original} // 'undef'
22             , $self->{parameter} // 'undef'
23             )
24 14 50 0     32 ) if ($DTL::Fast::Template::CURRENT_TEMPLATE->{extends});
      0        
25              
26 14         74 $DTL::Fast::Template::CURRENT_TEMPLATE->{extends} = DTL::Fast::Variable->new($self->{parameter});
27              
28 14         28 return;
29             }
30              
31             1;