Branch Coverage

blib/lib/Template/Alloy/Play.pm
Criterion Covered Total %
branch 232 322 72.0


line true false branch
72 1423 3797 if $self->{'STREAM'}
83 1532 5640 unless (ref $node)
84 1532 0 if defined $node
88 8 5632 if $self->{'_debug_dirs'} and not $self->{'_debug_off'}
110 202 0 $comp->{'_filename'} ? :
119 0 52 unless defined $var
142 3 118 if exists $named->{'STRICT'} and not $named->{'STRICT'}
146 0 3 defined $self->{$_} ? :
3 12 $rtime{$_} ? :
152 0 2 if ($ref->[0] eq 'on') { }
0 2 elsif ($ref->[0] eq 'off') { }
2 0 elsif ($ref->[0] eq 'format') { }
166 0 6 unless defined $set
168 4 2 unless ($val)
169 4 0 defined $default ? :
180 6 78 if not $conf and defined $conf
181 33 45 if ref $conf ne 'HASH'
185 75 3 unless ($handler)
189 18 42 if $prop =~ /^\w+$/ and $meth = $obj->can($prop)
190 12 63 defined $conf->{'Sortkeys'} ? :
191 21 0 $sort ? :
197 3 75 unless _is_empty_named_args($named)
203 69 9 if (@dump) { }
3 6 elsif (defined $conf->{'EntireStash'} and not $conf->{'EntireStash'}) { }
204 60 9 @dump && @dump == 1 ? :
216 9 69 if ($conf->{'html'} or not defined $conf->{'html'} and $ENV{'REQUEST_METHOD'}) { }
219 3 6 if $conf->{'header'} or not defined $conf->{'header'}
221 60 9 if $conf->{'header'} or not defined $conf->{'header'}
234 0 20 unless defined $str
236 17 0 if defined $str
245 0 49 unless @$filter
247 12 37 if length $name
254 0 49 if $@ and not UNIVERSAL::can($@, 'type')
257 49 0 if defined $out
268 4 168 unless defined $items
270 168 0 unless (ref($items) =~ /Iterator$/)
279 129 39 if (defined $var) { }
285 18 308 if (my $err = $@)
286 0 18 unless UNIVERSAL::can($err, 'type')
287 4 14 if $err->type =~ /last|break/
288 10 4 if $err->type ne 'next'
292 0 119 if $error and $error != 3
304 22 107 if ref $item eq 'HASH'
307 0 129 if (my $err = $@)
308 0 0 unless UNIVERSAL::can($err, 'type')
309 0 0 if $err->type =~ /last|break/
310 0 0 if $err->type ne 'next'
314 0 39 if $error and $error != 3
323 3314 397 if (defined $var) { }
327 397 0 if defined $var
336 78 72 if ($val)
343 13 16 if ($node->[0] eq 'ELSE')
350 6 10 if ($val)
375 0 21 if ($self->{'NO_INCLUDES'})
392 0 0 unless $self->{'COMPILE_JS'}
399 17 6 ref $ref ? :
404 1 3 ref $var eq 'HASH' ? :
19 4 ref $var eq 'ARRAY' ? :
409 0 46 if $ref and ref $ref ne 'HASH'
410 36 7 ref $ref eq 'HASH' ? :
3 43 !$global ? :
411 9 37 if ($self->{'LOOP_CONTEXT_VARS'} and not $Template::Alloy::QR_PRIVATE)
413 3 6 $i == 1 ? :
414 3 6 $i == @$items ? :
415 6 3 $i == 1 || $i == @$items ? :
416 6 3 $i % 2 ? :
432 0 44 if (not $sub_tree && $sub_tree->[0]) { }
31 19 elsif (ref $sub_tree->[0] and $sub_tree->[0][0] eq 'BLOCK') { }
459 2 92 if ++$self_copy->{'_macro_recurse'} > $max
462 0 70 if $_[-1] and UNIVERSAL::isa($_[-1], 'HASH') and $#_ > $#$args
476 0 92 if (my $err = $@)
477 0 0 if $err->type ne 'return'
478 0 0 if UNIVERSAL::isa($err->info, 'HASH')
490 76 76 unless $hash
491 76 0 if ref $hash eq 'ARRAY'
495 52 24 if ($self->{'_top_level'}) { }
507 2 10 unless $self->{'EVAL_PERL'}
516 10 0 if $out =~ /^(.+)$/s
541 0 10 if ($err)
542 0 0 unless UNIVERSAL::can($err, 'type')
551 2 539 if ($self->{'NO_INCLUDES'})
559 551 0 if defined $ref
568 0 0 if (ref $key and @$key == 2 and $key->[0] eq 'import' and UNIVERSAL::isa($val, 'HASH'))
579 0 551 unless defined $filename
583 537 14 if (not ref $filename or ref $filename eq 'SCALAR') { }
590 0 14 if $self->{'_process_dollar_template'}
595 0 14 if (ref $doc ne 'HASH' or not $doc->{'_perl'} || $doc->{'_tree'}) { }
5 9 elsif ($doc->{'_perl'}) { }
603 0 14 if ($self->{'TRIM'})
609 0 14 if (my $err = $@)
610 0 0 unless UNIVERSAL::can($err, 'type')
611 0 0 if $doc and $err->can('doc') and not $err->doc
618 87 464 if (my $err = $@)
619 84 3 unless UNIVERSAL::can($err, 'type') and $err->type =~ /return/
628 0 3 unless $self->{'EVAL_PERL'}
637 3 0 if $perl =~ /^(.+)$/s
655 0 3 if ($err)
656 0 0 unless UNIVERSAL::can($err, 'type')
666 0 10 if defined $var
674 18 1010 if (not defined $val) { }
54 956 elsif ($node->[4] and $val == $node->[4]) { }
678 2 52 if $sub_tree->[0] and $sub_tree->[0][0] eq 'BLOCK'
695 0 20 unless defined $val
701 6 14 unless (defined $var)
707 8 6 unless UNIVERSAL::isa($val2, 'ARRAY')
709 0 32 if not defined $val and defined $test
710 2 30 if defined $val and not defined $test
711 22 8 if $val ne $test
718 6 6 if ($default)
732 0 67 unless _is_empty_named_args($named)
747 10 146 unless ($node->[5])
748 8 2 unless ($err)
754 94 52 if ($err)
755 4 90 unless UNIVERSAL::can($err, 'type')
756 0 94 if ($err->type =~ /stop|return/)
765 94 52 $err ? :
768 6 146 if ($node->[0] eq 'FINAL')
772 50 96 unless $err
774 81 15 if not defined $name or lc $name eq 'default'
775 88 0 if ($type =~ / ^ \Q$name\E \b /x and !defined($last_found) || length $last_found < length $name)
783 94 52 if ($err)
784 8 86 unless ($catch_body_ref)
791 0 86 if (my $err = $@)
798 4 134 if $final
812 91 7 unless defined $var
817 61 37 unless _is_empty_named_args($named)
821 0 98 if (my $fact = $self->{'PLUGIN_FACTORY'}{$module} || $self->{'PLUGIN_FACTORY'}{lc $module}) { }
6 92 elsif (my $pkg = $self->{'PLUGINS'}{$module} || $self->{'PLUGINS'}{lc $module}) { }
3 89 elsif (lc $module eq 'iterator') { }
822 0 0 if (UNIVERSAL::isa($fact, 'CODE'))
823 0 0 $foreign ? :
828 3 3 if ($INC{$req} or eval { do { require $req } })
830 0 3 $foreign ? :
834 0 3 $foreign ? :
839 3 86 ref $BASE eq 'ARRAY' ? :
840 71 30 if ($base and $base eq 'TP-Fallback' and eval { do { require Template::Plugins } })
842 62 9 if ($Template::Plugins::STD_PLUGINS and my $pkg = $$Template::Plugins::STD_PLUGINS{lc $module})
846 62 0 if (eval { do { require $req } })
848 0 62 $foreign ? :
853 62 39 unless $base
857 18 21 if ($pkg->can('load') or eval { do { require $req } })
859 0 18 $foreign ? :
865 9 0 if (not $found and $self->{'LOAD_PERL'})
867 6 3 if ($module->can('new') or eval { do { require $req } })
868 0 6 $foreign ? :
873 6 92 unless (defined $obj)
878 0 92 if $foreign
896 0 35 if (ref $key)
897 0 0 if (@$key == 2 and not ref $key->[0] and not $key->[1]) { }
908 26 2 $hash->{'prefix'} || ref $name && @$name == 2 && !$name->[1] && !ref($name->[0]) ? :
915 0 28 unless (eval { do { require Template::View } })
926 28 0 if ($node->[4])
940 0 26 unless defined $var
948 22 2158 unless $self->play_expr($var)
952 2 2156 if (my $err = $@)
953 2 0 if (UNIVERSAL::can($err, 'type'))
954 0 2 if $err->type =~ /next/
955 2 0 if $err->type =~ /last|break/
960 2 24 unless $count
981 9 9 if ($self->{'STREAM'})
1001 15 0 if defined $_