| line |
true |
false |
branch |
|
54
|
41 |
2 |
$AUTOLOAD && $AUTOLOAD =~ /::(\w+)$/ ? : |
|
55
|
1 |
40 |
unless ($self->can($meth)) |
|
64
|
41 |
1 |
if $$ROLEMAP{$meth} |
|
73
|
6 |
72 |
if $item =~ /^(load|1)$/i |
|
74
|
2 |
70 |
if (lc $item eq 'all') |
|
80
|
7 |
63 |
if ($type = $STANDIN{$item}) |
|
82
|
4 |
3 |
unless ($INC{$file} and $item->isa('Template::Alloy')) |
|
83
|
1 |
3 |
if ($INC{$file}) |
|
86
|
0 |
3 |
unless $$AUTOROLE{$type} |
|
89
|
61 |
2 |
$$AUTOROLE{$item} ? : |
|
106
|
1 |
4300 |
ref $_[0] ? : |
|
109
|
253 |
4048 |
if (my(@keys) = grep({/^[a-z][a-z_]+$/;} keys %$args)) |
|
133
|
40 |
730 |
if (my $err = $@) |
|
134
|
40 |
0 |
if (not $err->type =~ /stop|return|next|last|break/) { } |
|
|
0 |
0 |
elsif ($err->type eq 'return' and UNIVERSAL::isa($err->info, 'HASH')) { } |
|
136
|
0 |
40 |
if $$self{'RAISE_ERROR'} |
|
156
|
145 |
5204 |
ref $file eq 'HASH' ? : |
|
159
|
6 |
5155 |
if not $$self{'RECURSION'} and $$self{'_in'}{$$doc{'name'}} and $$doc{'name'} ne 'input text' |
|
164
|
4329 |
838 |
$$self{'_top_level'} ? : |
|
168
|
1356 |
3811 |
if ($$self{'STREAM'}) { } |
|
|
0 |
3811 |
elsif ($$self{'COMPILE_JS'}) { } |
|
|
1869 |
1942 |
elsif ($$doc{'_perl'}) { } |
|
|
1941 |
1 |
elsif ($$doc{'_tree'}) { } |
|
169
|
0 |
1356 |
unless $$doc{'_tree'} |
|
182
|
27 |
4945 |
if ($$self{'TRIM'}) |
|
189
|
377 |
4972 |
if (my $err = $@) |
|
190
|
5 |
372 |
unless UNIVERSAL::can($err, 'type') |
|
191
|
161 |
40 |
if $doc and $err->can('doc') and not $err->doc |
|
192
|
104 |
273 |
unless $$self{'_top_level'} |
|
193
|
235 |
12 |
if $err->type ne 'stop' and $err->type ne 'return' || $err->info |
|
203
|
1 |
5380 |
unless defined $file |
|
206
|
13 |
5367 |
unless ref $docs |
|
210
|
4581 |
799 |
if (ref $file) { } |
|
|
19 |
780 |
elsif ($$docs{$file}) { } |
|
|
13 |
767 |
elsif ($$self{'_not_found'}{$file}) { } |
|
|
235 |
532 |
elsif ($$self{'BLOCKS'}{$file}) { } |
|
211
|
1 |
4580 |
if ref $file eq 'HASH' |
|
213
|
4577 |
3 |
if (not defined $$self{'CACHE_STR_REFS'} or $$self{'CACHE_STR_REFS'}) { } |
|
215
|
193 |
4384 |
if ($$docs{$_file}) |
|
217
|
2 |
191 |
if not $$doc{'_perl'} and $$self{'COMPILE_PERL'} |
|
222
|
1 |
2 |
$$self{'FORCE_STR_REF_PERL'} ? : |
|
232
|
19 |
0 |
if (time - $$doc{'cache_time'} < ($$self{'STAT_TTL'} || $STAT_TTL) or $$doc{'modtime'} == (stat $$doc{'_filename'})[9]) |
|
234
|
1 |
18 |
if not $$doc{'_perl'} and $$self{'COMPILE_PERL'} |
|
242
|
7 |
6 |
if (time - $$doc{'cache_time'} < ($$self{'NEGATIVE_STAT_TTL'} || $$self{'STAT_TTL'} || $STAT_TTL)) |
|
250
|
1 |
234 |
if UNIVERSAL::isa($block, 'CODE') |
|
251
|
4 |
231 |
unless (UNIVERSAL::isa($block, 'HASH')) |
|
252
|
1 |
3 |
if ref $block |
|
255
|
229 |
4 |
$$block{'name'} && $$block{'name'} ne 'input text' ? : |
|
256
|
232 |
1 |
if $$block{'_filename'} |
|
257
|
81 |
152 |
if ($$block{'_perl'}) { } |
|
|
151 |
1 |
elsif ($$block{'_tree'}) { } |
|
268
|
538 |
3 |
unless ($$doc{'_filename'} or ref $file) |
|
271
|
71 |
467 |
if (my $err = $@) |
|
273
|
18 |
53 |
if ($$self{'EXPOSE_BLOCKS'} and not $$self{'_looking_in_block_file'}) { } |
|
|
0 |
53 |
elsif ($$self{'DEFAULT'}) { } |
|
277
|
0 |
12 |
length $block_name ? : |
|
281
|
0 |
30 |
unless ref $node |
|
282
|
12 |
18 |
if $$node[0] eq 'META' |
|
283
|
0 |
18 |
if $$node[0] ne 'BLOCK' |
|
284
|
6 |
12 |
if $block_name ne $$node[3] |
|
287
|
4 |
0 |
if $$ref{'_perl'} and $$ref{'_perl'}{'blocks'} and $$ref{'_perl'}{'blocks'}{$block_name} |
|
292
|
0 |
12 |
if $$self{'COMPILE_JS'} and $$ref{'_js'} |
|
297
|
0 |
0 |
if $$doc{'_filename'} = eval {
do {
$self->include_filename($$self{'DEFAULT'})
}
} |
|
299
|
59 |
0 |
if ($err) |
|
301
|
59 |
0 |
if (not defined $$self{'NEGATIVE_STAT_TTL'} or $$self{'NEGATIVE_STAT_TTL'}) |
|
302
|
0 |
59 |
unless UNIVERSAL::can($err, 'type') |
|
314
|
1742 |
3112 |
if (not $$doc{'_no_perl'} and $$self{'COMPILE_PERL'} and $$self{'COMPILE_PERL'} ne '2' || $$self{'_tree'}) { } |
|
|
0 |
3112 |
elsif ($$self{'COMPILE_JS'}) { } |
|
323
|
4469 |
252 |
if (not defined $$self{'CACHE_SIZE'} or $$self{'CACHE_SIZE'}) |
|
325
|
4024 |
445 |
if (ref $file) { } |
|
326
|
4021 |
3 |
if $$doc{'_filename'} |
|
332
|
0 |
4469 |
if ($$self{'CACHE_SIZE'}) |
|
333
|
0 |
0 |
if (scalar keys %$docs > $$self{'CACHE_SIZE'}) |
|
336
|
0 |
0 |
if ++$n > $$self{'CACHE_SIZE'} |
|
350
|
1 |
4577 |
ref $self && $$self{'ENCODING'} && eval {
do {
require Encode
}
} && defined &Encode::encode ? : |
|
362
|
4850 |
3 |
if ($$doc{'_filename'}) |
|
364
|
16 |
4834 |
if ($$self{'COMPILE_DIR'} or $$self{'COMPILE_EXT'}) |
|
366
|
8 |
8 |
if ($$self{'COMPILE_DIR'}) { } |
|
|
2 |
6 |
elsif ($$doc{'_is_str_ref'}) { } |
|
367
|
0 |
8 |
if $^O eq 'MSWin32' |
|
372
|
12 |
4 |
if defined $$self{'COMPILE_EXT'} |
|
373
|
16 |
0 |
if defined $EXTRA_COMPILE_EXT |
|
375
|
1 |
0 |
if (-e $file and $$doc{'_is_str_ref'} || (stat $file)[9] == $$doc{'modtime'}) |
|
386
|
33 |
4819 |
if ($$self{'CONSTANTS'}) |
|
396
|
15 |
4704 |
if ($$doc{'_storable_filename'}) |
|
399
|
10 |
5 |
unless (-d $dir) |
|
415
|
9553 |
18936 |
unless ref $_[1] |
|
426
|
9292 |
9644 |
if (ref $name) { } |
|
|
9644 |
0 |
elsif (defined $name) { } |
|
427
|
9118 |
174 |
if (not defined $$name[0]) { } |
|
428
|
192 |
8926 |
if wantarray and $$name[1] eq '..' |
|
429
|
110 |
8816 |
$$name[1] eq '-temp-' ? : |
|
432
|
174 |
0 |
if (defined $name) |
|
433
|
3 |
171 |
if $QR_PRIVATE and $name =~ /$QR_PRIVATE/ |
|
434
|
0 |
111 |
if $i >= $#$var and $$ARGS{'return_ref'} and not ref $$self{'_vars'}{$name} |
|
439
|
15 |
9629 |
if $QR_PRIVATE and $name =~ /$QR_PRIVATE/ |
|
440
|
6 |
7068 |
if $i >= $#$var and $$ARGS{'return_ref'} and not ref $$self{'_vars'}{$name} |
|
442
|
873 |
8750 |
unless (defined $ref) |
|
443
|
175 |
698 |
$name eq 'template' || $name eq 'component' ? : |
|
444
|
665 |
6 |
if not $ref and !defined($$self{'VMETHOD_FUNCTIONS'}) || $$self{'VMETHOD_FUNCTIONS'} |
|
445
|
59 |
814 |
if not defined $ref and $$self{'LOWER_CASE_VAR_FALLBACK'} |
|
453
|
547 |
20724 |
if (UNIVERSAL::isa($ref, 'CODE')) |
|
454
|
15 |
532 |
if $i >= $#$var and $$ARGS{'return_ref'} |
|
455
|
161 |
371 |
$args ? : |
|
457
|
39 |
493 |
if ($type eq 'item') { } |
|
461
|
33 |
457 |
if ($type eq 'list') { } |
|
|
453 |
4 |
elsif (defined $results[0]) { } |
|
|
0 |
4 |
elsif (defined $results[1]) { } |
|
464
|
21 |
432 |
$#results > 0 ? : |
|
475
|
17796 |
3453 |
if $i >= $#$var |
|
476
|
0 |
3453 |
$$ARGS{'no_dots'} ? : |
|
481
|
60 |
3393 |
if (ref $name) |
|
482
|
60 |
0 |
if (ref $name eq 'ARRAY') { } |
|
484
|
0 |
60 |
if (not defined $name or $QR_PRIVATE and $name =~ /$QR_PRIVATE/ or $name =~ /^\./) |
|
492
|
3 |
3450 |
if (not defined $name or $QR_PRIVATE and $name =~ /$QR_PRIVATE/) |
|
498
|
939 |
2511 |
if (not ref $ref) { } |
|
499
|
223 |
716 |
if ($$Template::Alloy::ITEM_METHODS{$name}) { } |
|
|
665 |
51 |
elsif ($$Template::Alloy::ITEM_OPS{$name}) { } |
|
|
9 |
42 |
elsif ($$Template::Alloy::LIST_OPS{$name}) { } |
|
|
36 |
6 |
elsif (my $filter = $$self{'FILTERS'}{$name} || $$Template::Alloy::FILTER_OPS{$name} || UNIVERSAL::isa($name, 'CODE') && $name || $self->list_filters->{$name}) { } |
|
500
|
60 |
163 |
$args ? : |
|
503
|
343 |
322 |
$args ? : |
|
506
|
0 |
9 |
$args ? : |
|
513
|
9 |
27 |
if (UNIVERSAL::isa($filter, 'CODE')) { } |
|
|
0 |
27 |
elsif (not UNIVERSAL::isa($filter, 'ARRAY')) { } |
|
|
9 |
18 |
elsif (@$filter == 2 and UNIVERSAL::isa($$filter[0], 'CODE')) { } |
|
515
|
0 |
9 |
if (my $err = $@) |
|
516
|
0 |
0 |
unless UNIVERSAL::can($err, 'type') |
|
525
|
6 |
3 |
if ($$filter[1]) |
|
526
|
3 |
3 |
$args ? : |
|
527
|
0 |
6 |
if (not $sub and $err) { } |
|
|
0 |
6 |
elsif (not UNIVERSAL::isa($sub, 'CODE')) { } |
|
528
|
0 |
0 |
unless UNIVERSAL::can($err, 'type') |
|
531
|
0 |
0 |
unless UNIVERSAL::can($sub, 'type') |
|
538
|
0 |
9 |
if (my $err = $@) |
|
539
|
0 |
0 |
unless UNIVERSAL::can($err, 'type') |
|
543
|
0 |
18 |
if $seen_filters{$name}++ |
|
547
|
0 |
36 |
if (scalar keys %seen_filters and $seen_filters{$$var[$i - 5] or ''}) |
|
558
|
845 |
1666 |
if ($was_dot_call and UNIVERSAL::can($ref, 'can')) |
|
559
|
0 |
845 |
if $i >= $#$var and $$ARGS{'return_ref'} |
|
561
|
139 |
706 |
$args ? : |
|
562
|
21 |
824 |
if ($type eq 'item') { } |
|
|
21 |
803 |
elsif ($type eq 'list') { } |
|
570
|
13 |
790 |
if ($@) { } |
|
|
790 |
0 |
elsif (defined $results[0]) { } |
|
|
0 |
0 |
elsif (defined $results[1]) { } |
|
572
|
0 |
9 |
if ref $@ or not $@ =~ /Can\'t locate object method "\Q$name\E" via package "\Q$class\E"/ or $type eq 'list' |
|
574
|
23 |
767 |
$#results > 0 ? : |
|
585
|
1056 |
619 |
if (UNIVERSAL::isa($ref, 'HASH')) { } |
|
|
619 |
0 |
elsif (UNIVERSAL::isa($ref, 'ARRAY')) { } |
|
586
|
756 |
300 |
if ($was_dot_call and exists $$ref{$name}) { } |
|
|
171 |
129 |
elsif ($$Template::Alloy::HASH_OPS{$name}) { } |
|
|
6 |
123 |
elsif ($$ARGS{'is_namespace_during_compile'}) { } |
|
587
|
12 |
592 |
if $i >= $#$var and $$ARGS{'return_ref'} and not ref $$ref{$name} |
|
590
|
72 |
99 |
$args ? : |
|
594
|
3 |
120 |
if $i >= $#$var and $$ARGS{'return_ref'} |
|
599
|
155 |
464 |
if ($name =~ / ^ -? $QR_INDEX $ /ox) { } |
|
|
464 |
0 |
elsif ($$Template::Alloy::LIST_OPS{$name}) { } |
|
600
|
6 |
137 |
if $i >= $#$var and $$ARGS{'return_ref'} and not ref $$ref[$name] |
|
603
|
146 |
318 |
$args ? : |
|
612
|
831 |
17796 |
unless (defined $ref) |
|
613
|
27 |
804 |
if $$self{'STRICT'} |
|
614
|
6 |
801 |
if $$self{'_debug_undef'} |
|
627
|
331 |
5752 |
unless ref $var |
|
632
|
18 |
6065 |
if (ref $ref) { } |
|
|
6065 |
0 |
elsif (defined $ref) { } |
|
634
|
0 |
18 |
if ref $ref ne 'ARRAY' |
|
635
|
6 |
12 |
if (not defined $$ref[0]) { } |
|
636
|
0 |
6 |
unless $$ref[1] and $$ref[1] =~ /^[\$\@]\(\)$/ |
|
641
|
12 |
0 |
if (defined $ref and not $QR_PRIVATE && $ref =~ /$QR_PRIVATE/) { } |
|
642
|
6 |
6 |
if ($#$var <= $i) { } |
|
652
|
3 |
6062 |
if $QR_PRIVATE and $ref =~ /$QR_PRIVATE/ |
|
653
|
5880 |
182 |
if ($#$var <= $i) { } |
|
663
|
6 |
250 |
if (UNIVERSAL::isa($ref, 'CODE')) |
|
665
|
0 |
6 |
$args ? : |
|
666
|
0 |
6 |
if ($type eq 'item') { } |
|
670
|
3 |
3 |
if ($type eq 'list') { } |
|
|
3 |
0 |
elsif (defined $results[0]) { } |
|
|
0 |
0 |
elsif (defined $results[1]) { } |
|
673
|
0 |
3 |
$#results > 0 ? : |
|
683
|
0 |
256 |
if $i >= $#$var |
|
684
|
6 |
250 |
$$ARGS{'no_dots'} ? : |
|
689
|
18 |
238 |
if (ref $name) |
|
690
|
18 |
0 |
if (ref $name eq 'ARRAY') { } |
|
692
|
0 |
18 |
if (not defined $name or $name =~ /^[_.]/) |
|
699
|
0 |
256 |
if ($QR_PRIVATE and $name =~ /$QR_PRIVATE/) |
|
704
|
0 |
256 |
if (not ref $ref) { } |
|
|
49 |
207 |
elsif (UNIVERSAL::can($ref, 'can')) { } |
|
711
|
0 |
49 |
$args ? : |
|
712
|
40 |
9 |
if ($i >= $#$var) |
|
716
|
3 |
46 |
if ($type eq 'item') { } |
|
|
3 |
43 |
elsif ($type eq 'list') { } |
|
718
|
3 |
0 |
if $lvalueish |
|
722
|
3 |
0 |
if $lvalueish |
|
726
|
39 |
4 |
unless ($@) |
|
727
|
39 |
0 |
if (defined $results[0]) { } |
|
|
0 |
0 |
elsif (defined $results[1]) { } |
|
728
|
0 |
39 |
$#results > 0 ? : |
|
734
|
30 |
9 |
if $lvalueish |
|
738
|
4 |
0 |
if ref $@ or not $@ =~ /Can\'t locate object method "\Q$name\E" via package "\Q$class\E"/ |
|
742
|
189 |
18 |
if (UNIVERSAL::isa($ref, 'HASH')) { } |
|
|
18 |
0 |
elsif (UNIVERSAL::isa($ref, 'ARRAY')) { } |
|
743
|
142 |
47 |
if ($#$var <= $i) { } |
|
751
|
18 |
0 |
if ($name =~ / ^ -? $QR_INDEX $ /ox) { } |
|
752
|
12 |
6 |
if ($#$var <= $i) { } |
|
773
|
0 |
332 |
if @_ == 1 |
|
779
|
0 |
559 |
if ($file =~ m[^/]) { } |
|
|
0 |
559 |
elsif ($file =~ m[(^|/)\.\./]) { } |
|
780
|
0 |
0 |
unless $$self{'ABSOLUTE'} |
|
781
|
0 |
0 |
if -e $file |
|
783
|
0 |
0 |
unless $$self{'RELATIVE'} |
|
784
|
0 |
0 |
if -e $file |
|
788
|
60 |
0 |
if ($$self{'ADD_LOCAL_PATH'} and $$self{'_component'} and $$self{'_component'}{'_filename'} and $$self{'_component'}{'_filename'} =~ m[^(.+)/[^/]+$]) |
|
792
|
12 |
48 |
$$self{'ADD_LOCAL_PATH'} < 0 ? : |
|
796
|
488 |
112 |
if -e "$path/$file" |
|
807
|
0 |
426 |
if UNIVERSAL::isa($paths, 'CODE') |
|
808
|
404 |
22 |
unless UNIVERSAL::isa($paths, 'ARRAY') |
|
815
|
27 |
521 |
if UNIVERSAL::isa($path, 'ARRAY') |
|
817
|
0 |
521 |
$delim eq ':' && $^O eq 'MSWin32' ? : |
|
823
|
0 |
490 |
unless open my $fh, '<', $file |
|
826
|
3 |
487 |
if ($$self{'ENCODING'}) |
|
828
|
0 |
3 |
if ($@ or not defined &Encode::decode) { } |
|
844
|
13 |
522 |
if UNIVERSAL::can($type, 'type') |
|
845
|
100 |
422 |
if (ref $info eq 'ARRAY') |
|
846
|
0 |
100 |
ref $$info[-1] eq 'HASH' ? : |
|
847
|
0 |
100 |
if (@$info >= 2 or scalar keys %$hash) { } |
|
|
87 |
13 |
elsif (@$info == 1) { } |
|
878
|
0 |
614 |
if $$self{'UNDEFINED_GET'} |
|
884
|
0 |
801 |
if $$self{'UNDEFINED_ANY'} |
|
893
|
3 |
24 |
$comp ne $temp ? : |
|
894
|
6 |
21 |
if $$self{'STRICT_THROW'} |
|
914
|
0 |
0 |
unless $$doc{'_filename'} or $$doc{'_content'} |
|
931
|
0 |
3924 |
if (not $index or $index <= 0) |
|
932
|
0 |
0 |
$include_char ? : |
|
941
|
1680 |
504 |
if $i == 0 |
|
949
|
3350 |
574 |
if ($index > $$lines[-1]) { } |
|
953
|
574 |
1530 |
if abs $i - $j <= 1 |
|
955
|
657 |
873 |
if $$lines[$k] >= $index |
|
956
|
883 |
647 |
if $$lines[$k] <= $index |
|
959
|
3822 |
102 |
$include_char ? : |
|
965
|
2070 |
33178 |
unless defined $var |
|
966
|
9986 |
23192 |
if ref $var |
|
967
|
10155 |
13037 |
if $var =~ /^(-?[1-9]\d{0,13}|0)$/ |
|
975
|
3 |
33 |
unless (ref $ident) |
|
976
|
3 |
0 |
if $ident eq '0' or $ident =~ /^[1-9]\d{0,12}$/ |
|
983
|
9 |
42 |
if $$ident[$i++] |
|
984
|
18 |
33 |
if $i < @$ident |
|
991
|
0 |
223 |
unless defined $text |
|
995
|
30 |
193 |
if ++$$self{'_eval_recurse'} > ($$self{'MAX_EVAL_RECURSE'} || $MAX_EVAL_RECURSE) |
|
1001
|
3 |
190 |
if exists $ARGS{'STRICT'} and not $ARGS{'STRICT'} |
|
1005
|
11 |
179 |
unless $self->process_simple(\$text, $self->_vars, \$out) |