Branch Coverage

blib/lib/HTML/YaTmpl.pm
Criterion Covered Total %
branch 216 298 72.4


line true false branch
33 0 2 length $I->eprefix ? :
34 2 0 if (length $eval) { }
35 0 2 if ($@ =~ /\bline \d+\b/) { }
48 2 0 if $I->onerror eq 'die'
49 0 0 if $I->onerror eq 'output'
50 0 0 if ref $I->onerror eq 'CODE'
51 0 0 if $I->onerror eq 'warn'
61 0 8 if (ref $parent) { }
66 0 8 if (exists $ENV{'HTML_TMPL_SEARCH_PATH'})
74 10 94 if exists $o{$m}
77 1 7 if length $I->file
86 0 9 if exists $o{'file'}
87 0 9 if exists $o{'path'}
90 1 8 if (-d $I->file)
91 0 1 unless exists $!{'EISDIR'} and $! = &Errno::EISDIR
95 1 7 unless CORE::open F, '<' . $I->file or do { my $rc = 0; unless ('File::Spec'->file_name_is_absolute($I->file)) { foreach my $el (@{[] unless $I->path;}) { next unless length $el; $el =~ s[/*$][]; my $f = 'File::Spec'->catfile($el, $I->file); if (-d $f) { exists $!{'EACCES'} and $! = &Errno::EACCES unless exists $!{'EISDIR'} and $! = &Errno::EISDIR; last; } elsif (CORE::open F, '<' . $f) { $rc = 1; last; } ; } ; } ; $rc }
97 8 0 unless ('File::Spec'->file_name_is_absolute($I->file))
98 0 8 unless $I->path
99 0 8 unless length $el
102 0 8 if (-d $f) { }
7 1 elsif (CORE::open F, '<' . $f) { }
103 0 0 unless exists $!{'EISDIR'} and $! = &Errno::EISDIR
117 0 7 unless defined $I->template
126 54 103 if ref $p eq 'ARRAY' and lc $$p[0] eq $name
144 20 0 if (length $$e[1])
145 7 13 if ($$e[0] eq 'grep') { }
7 6 elsif ($$e[0] eq 'map') { }
6 0 elsif ($$e[0] eq 'sort') { }
148 7 0 if ref $x eq 'CODE'
152 7 0 if ref $x eq 'CODE'
156 6 0 if ref $x eq 'CODE'
162 19 96 if @{$pre;}
163 112 3 if (@list >= 1)
166 112 3 if (@list) { }
173 111 4 if (@list >= 2)
176 19 96 if @{$post;}
188 39 181 if (length $type)
192 12 32 if ($t eq 'empty') { }
4 28 elsif ($t eq 'given') { }
20 8 elsif ($t eq 'array') { }
8 0 elsif ($t eq 'scalar') { }
195 4 7 if not exists $$h{$$el[1]} or ref $$h{$$el[1]} eq 'ARRAY' and @{$$h{$$el[1]};} == 0 or length "$$h{$$el[1]}" == 0
200 2 2 if exists $$h{$$el[1]} and ref $$h{$$el[1]} eq 'ARRAY' && @{$$h{$$el[1]};} > 0 || ref $$h{$$el[1]} ne 'ARRAY' && length "$$h{$$el[1]}"
207 11 8 if exists $$h{$$el[1]} and ref $$h{$$el[1]} eq 'ARRAY' and @{$$h{$$el[1]};} > 0
209 3 5 if exists $$h{$$el[1]} and ref $$h{$$el[1]} ne 'ARRAY' and length "$$h{$$el[1]}"
214 18 21 unless $found
217 34 168 unless (defined $$el[3])
219 15 19 if (length $code) { }
228 91 3 if (ref $p eq 'ARRAY')
229 0 91 unless defined $$p[1]
230 1 90 if lc $$p[0] eq 'first'
231 3 88 if lc $$p[0] eq 'last'
232 16 75 if lc $$p[0] eq 'pre'
233 16 75 if lc $$p[0] eq 'post'
234 11 73 if lc $$p[0] eq 'grep' or lc $$p[0] eq 'map' or lc $$p[0] eq 'sort'
243 229 235 if ($$_[0] eq ':') { }
202 0 defined $$el[3] ? :
244 1 228 if (lc $$_[1] eq 'first') { }
6 222 elsif (lc $$_[1] eq 'last') { }
6 216 elsif (lc $$_[1] eq 'pre') { }
6 210 elsif (lc $$_[1] eq 'post') { }
13 197 elsif (lc $$_[1] eq 'code') { }
2 195 elsif (lc $$_[1] eq 'grep' or lc $$_[1] eq 'sort' or lc $$_[1] eq 'map') { }
245 1 0 defined $$_[3] ? :
248 6 0 defined $$_[3] ? :
251 6 0 defined $$_[3] ? :
254 6 0 defined $$_[3] ? :
257 13 0 defined $$_[3] ? :
262 2 0 defined $$_[3] ? :
272 13 189 if @code
273 200 2 unless @first
274 193 9 unless @last
276 87 115 if ($given or ref $$h{$$el[1]} ne 'ARRAY') { }
312 0 183 if ($self->no_eval_cache) { }
314 0 0 if ($@)
316 0 0 if $noerroroutput
320 50 133 unless (defined $ecache{$x})
321 1 49 if (scalar keys %ecache >= $hwm)
329 0 50 if ($@)
331 0 0 $noerroroutput ? :
343 0 163 if ($self->no_eval_cache) { }
347 0 0 if ($@)
349 0 0 if $noerroroutput
356 0 163 unless ref $f eq 'CODE'
360 0 163 if ($@)
362 0 0 if $noerroroutput
372 55 883 unless defined $str
374 0 938 if ($I->no_parse_cache) { }
378 241 697 unless (defined $el)
379 3 238 if (scalar keys %pcache >= $hwm)
402 4 594 if (length $$el[3]) { }
124 470 elsif (@{$$el[2];}) { }
411 128 0 if (length $eval)
428 43 257 if ($$_[0] eq ':' and $$_[1] =~ /^code$/i)
99 0 defined $$el[3] ? :
429 43 0 defined $$_[3] ? :
433 43 56 @l2 ? :
442 598 160 if (0 == length $$el[1]) { }
8 152 elsif ($$el[1] eq 'include') { }
75 77 elsif ($$el[1] eq 'for') { }
48 29 elsif ($$el[1] eq 'm' or $$el[1] eq 'macro') { }
4 25 elsif ($$el[1] eq 'eval') { }
18 7 elsif ($$el[1] eq 'cond') { }
5 2 elsif ($$el[1] eq 'set') { }
2 0 elsif ($$el[1] eq 'defmacro') { }
450 8 0 if (not ref $f and length $f)
460 2 6 unless (defined $I->open)
467 6 0 defined $I->template ? :
477 0 6 if $msg
488 48 0 if (not ref $f and length $f)
493 0 48 unless (exists $I->_macros->{$macro})
506 4 0 defined $new_tmpl ? :
512 2 0 unless (ref $x)
516 18 0 defined $$el[3] ? :
517 35 0 if ($$c[0] eq ':' and $$c[1] eq '' || $$c[1] eq 'case')
522 18 17 if ($I->__eval_cached($eval, $v, $h, 1))
530 0 5 if ref $f
539 2 0 if (not ref $f and length $f)
556 125 67 if (ref $p eq 'ARRAY') { }
562 12 124 unless (defined $$ve[0])
563 6 6 if ($array) { }
573 113 11 if ($$ve[0] eq ':') { }
580 80 44 if (ref $x eq 'ARRAY') { }
581 2 78 if ($array) { }
3 75 elsif (length $string) { }
599 0 44 if ($array) { }
604 0 44 if (length $string) { }
612 125 0 defined $$p[0] ? :
78 47 $array ? :
616 11 56 if ($p eq ':inherit' or $p eq ':inheritparams')
631 91 44 defined $$el[3] ? :
632 16 289 if ($$_[0] eq ':' and $$_[1] eq 'set') { }
635 0 16 if ref $f
657 1317 849 if (not defined $$el[0]) { }
645 204 elsif ($$el[0] eq ':') { }
663 108 96 if (ref $el eq 'ARRAY') { }
675 0 1 if (@_ % 2) { }
684 1 0 unless defined $I->_macros
686 6 5 if (not defined $$el[0]) { }
0 5 elsif ($$el[0] eq ':') { }
698 0 54 if (@_ % 2) { }
705 7 47 unless defined $I->_macros
708 1 51 if ($I->compress =~ /gz$/) { }
722 0 2 if (UNIVERSAL::isa($fh, 'GLOB'))
725 0 2 if (UNIVERSAL::isa($fh, 'CODE'))
728 0 2 if (ref $fh and UNIVERSAL::can($fh, 'print'))
732 1 1 if ($I->compress =~ /gz$/)
737 0 2 unless $fh = 'IO::File'->new($fh, 'w')
738 0 2 unless print $fh $text