Branch Coverage

blib/lib/Text/Caml.pm
Criterion Covered Total %
branch 105 122 86.0


line true false branch
36 11 6 unless $self->templates_path
48 67 13 ref $_[0] eq 'HASH' ? :
56 0 5 ref $_[0] eq 'HASH' ? :
72 163 77 if ($template =~ /($LEADING_SPACE)?\G $START_TAG /cgmsx) { }
28 49 elsif ($template =~ /\G (.*?) (?=$START_TAG\{?)/cgmsx) { }
78 2 161 if ($template =~ /\G \{ (.*?) \} $END_TAG/cgmsx) { }
1 160 elsif ($template =~ /\G - (.*?) $END_TAG/cgmsx) { }
5 155 elsif ($template =~ /\G ! .*? $END_TAG/cgmsx) { }
47 108 elsif ($template =~ /\G $START_OF_SECTION \s* (.*?) \s* $END_TAG ($TRAILING_SPACE)?/cgmsx) { }
12 96 elsif ($template =~ /\G $START_OF_INVERTED_SECTION (.*?) $END_TAG ($TRAILING_SPACE)?/cgmsx) { }
0 96 elsif ($template =~ /\G $END_OF_SECTION (.*?) $END_TAG/cgmsx) { }
8 88 elsif ($template =~ /\G $START_OF_PARTIAL \s* (.*?) \s* $END_TAG/cgmsx) { }
6 82 elsif ($template =~ /\G $START_OF_TEMPLATE_INHERITANCE \s* (.*?) \s* $END_TAG/cgmsx) { }
5 77 elsif ($template =~ /\G $START_OF_BLOCK \s* (.*?) \s* $END_TAG/cgmsx) { }
77 0 elsif ($template =~ /\G (.*?) $END_TAG/cgmsx) { }
99 47 0 if ($template =~ /\G (.*?) ($LEADING_SPACE)? $START_TAG $END_OF_SECTION $end_of_section $END_TAG ($TRAILING_SPACE)?/cgmsx) { }
117 12 0 if ($template =~ / \G (.*?) ($LEADING_SPACE)? $START_TAG $END_OF_SECTION $name $END_TAG ($TRAILING_SPACE)?/cgmsx) { }
145 6 0 if ($template =~ /\G (.*?) ($LEADING_SPACE)? $START_TAG $END_OF_TEMPLATE_INHERITANCE $end_of_inherited_template $END_TAG ($TRAILING_SPACE)?/cgmsx) { }
161 5 0 if ($template =~ /\G (.*?) ($LEADING_SPACE)? $START_TAG $END_OF_BLOCK $end_of_block $END_TAG/cgmsx) { }
180 135 28 if ($chunk ne '') { }
23 5 elsif ($output eq '' or $leading_newline) { }
184 23 0 if ($template =~ /\G $TRAILING_SPACE/cgmsx)
213 20 59 if ($name eq '.') { }
214 0 20 if $self->_is_empty($context, $name)
223 5 74 if (ref $value eq 'CODE')
225 1 4 unless defined $content
241 3 0 if (ref $value eq 'HASH' and exists $value->{'_with'} and &Scalar::Util::blessed($value->{'_with'}) and $value->{'_with'}->can($part))
250 2 124 if (ref $value eq 'ARRAY')
255 2 17 if (exists $value->{'.'} and &Scalar::Util::blessed($value->{'.'}) and $value->{'.'}->can($part))
263 18 104 if $self->_is_empty($value, $part)
265 2 102 &Scalar::Util::blessed($value) ? :
275 3 103 if ($name eq '.')
276 0 3 if $self->_is_empty($context, $name)
282 91 12 $value ? :
290 1 76 if ($tag =~ s/\A \&//msx)
296 76 1 unless $do_not_escape
309 2 45 if (ref $value eq 'HASH') { }
19 26 elsif (ref $value eq 'ARRAY') { }
4 22 elsif (ref $value eq 'CODE') { }
3 19 elsif (ref $value) { }
12 7 elsif ($value) { }
315 7 31 ref $el eq 'HASH' ? :
349 6 6 unless defined $value
355 0 6 if (ref $value eq 'HASH') { }
2 4 elsif (ref $value eq 'ARRAY') { }
0 4 elsif (not $value) { }
358 1 1 if @$value
373 1 7 if (my $ext = $self->{'default_partial_extension'})
378 1 7 if ($template =~ s/^\&//)
384 7 1 $parse ? :
391 0 6 if (my $ext = $self->{'default_partial_extension'})
408 3 2 if ($override =~ / $START_OF_BLOCK \s* $name \s* $END_TAG/cgmsx)
410 3 0 if ($override =~ / (.*) $START_TAG $END_OF_BLOCK \s* $name \s* $END_TAG/cgmsx) { }
425 18 1 defined $self->templates_path && !'File::Spec'->file_name_is_absolute($template) ? :
431 1 18 unless defined $path and -f $path
435 0 18 unless open my $file, '<:encoding(UTF-8)', $path
439 0 18 unless defined $content
452 3 142 if (&Scalar::Util::blessed($vars)) { }
456 4 138 unless exists $vars->{$name}
460 2 139 unless defined $var
461 12 127 if $var eq ''