Branch Coverage

blib/lib/Template/Pure.pm
Criterion Covered Total %
branch 185 238 77.7


line true false branch
46 3 3 if ($target eq 'pure-include') { }
1 2 elsif ($target eq 'pure-wrapper') { }
1 1 elsif ($target eq 'pure-filter') { }
1 0 elsif ($target eq 'pure-overlay') { }
49 1 2 if ($ctx) { }
2 0 elsif (%attrs) { }
68 1 0 if ($ctx) { }
0 0 elsif (%attrs) { }
88 0 1 if ($ctx) { }
1 0 elsif (%attrs) { }
139 0 8 unless $params{'node'}->attr
150 4 4 if $params{'component_current_parent'}[-1]
155 0 8 if $component->can('on_process_components')
168 6 880 if ($params{'node'}->type eq 'pi')
173 8 878 if (($component_name) = ($params{'node'}->tag || '') =~ /^pure\-(.+)?/)
174 1 7 unless defined $params{'component_current_parent'}
183 8 878 if defined $params{'component_current_parent'} and $component_name
207 54 0 unless $extra_directives
220 0 54 unless $extra_directives
249 7 0 unless (&Scalar::Util::blessed($data) and $data->isa('Template::Pure::DataContext'))
258 12 16 $css eq '.' ? :
259 0 28 unless defined $new
266 1 187 unless $collection->size
273 50 67 unless exists $self->{'root_data'}
282 1 232 if (ref $directive or !1)
287 1 231 if ($directive =~ /\=\{/g)
289 1 1 ref $_ eq 'HASH' ? :
296 0 232 if $match_spec{'absolute'}
298 1 231 if ($match_spec{'mode'} eq 'filter') { }
24 207 elsif ((ref $action_proto || '') eq 'HASH') { }
17 190 elsif ((ref $action_proto || '') eq 'ARRAY') { }
21 169 elsif ((ref $action_proto || '') eq 'CODE') { }
10 159 elsif (&Scalar::Util::blessed($action_proto)) { }
319 9 177 if (&Scalar::Util::blessed($value_proto) and $value_proto->isa('Template::Pure') || $value_proto->can('TO_HTML')) { }
2 175 elsif ((ref $value_proto || '') eq 'CODE') { }
335 15 4 if ($obj->isa(ref $self)) { }
3 1 elsif ($obj->can('TO_HTML')) { }
1 0 elsif ($obj->isa('Mojo::DOM58')) { }
336 12 3 if ($css eq '.') { }
344 3 1 if ($match_spec{'target'} eq 'content') { }
1 0 elsif ($match_spec{'target'} eq 'node') { }
0 0 elsif (my $attr = ${$match_spec{'target'};}) { }
362 1 2 if ($css eq '.') { }
381 165 13 if (ref \$action_proto eq 'SCALAR') { }
13 0 elsif ((ref $action_proto || '') eq 'SCALAR') { }
399 10 155 if ($first_open >= 0 and $first_open < $first_pipe or $first_open >= 0 and $first_pipe == -1) { }
409 18 13 ref $_ eq 'HASH' ? :
414 3 7 if (&Scalar::Util::blessed($parts[-1]) and index("$parts[-1]", '|') > 0)
428 2 153 if (defined(my $literal = $data_spec{'literal'})) { }
439 8 15 if ($css eq '.') { }
469 9 108 if ((ref $directives[0] || '') eq 'HASH')
490 2 22 exists $action{'order_by'} ? :
491 1 23 exists $action{'grep'} ? :
492 0 24 exists $action{'filter'} ? :
493 0 24 exists $action{'display_fields'} ? :
494 1 23 exists $action{'directives'} ? :
497 17 7 if (index($sub_data_proto, '<-') > 0) { }
499 5 12 if (ref \$sub_data_action eq 'SCALAR')
501 1 4 if $match_spec->{'mode'} eq 'append'
502 0 5 if $match_spec->{'mode'} eq 'prepend'
503 0 5 if $match_spec->{'mode'} eq 'filter'
504 0 5 if $match_spec->{'target'} eq 'node'
508 2 15 if (ref $sub_data_action eq 'CODE')
510 0 2 if $match_spec->{'mode'} eq 'append'
511 1 1 if $match_spec->{'mode'} eq 'prepend'
512 0 2 if $match_spec->{'mode'} eq 'filter'
513 0 2 if $match_spec->{'target'} eq 'node'
517 2 15 if (&Scalar::Util::blessed($sub_data_action))
519 0 2 if $match_spec->{'mode'} eq 'append'
520 0 2 if $match_spec->{'mode'} eq 'prepend'
521 0 2 if $match_spec->{'mode'} eq 'filter'
522 1 1 if $match_spec->{'target'} eq 'node'
526 0 17 unless ref $sub_data_action eq 'ARRAY'
537 1 16 if $self->_value_is_undef($itr_data_proto)
541 0 16 if ($display_fields)
545 2 14 if ($sort_cb)
546 0 2 if (ref \$sort_cb eq 'SCALAR')
551 0 2 unless ref $sort_cb eq 'CODE'
554 1 15 if ($grep_cb)
555 1 0 if (ref \$grep_cb eq 'SCALAR')
560 0 1 unless ref $grep_cb eq 'CODE'
563 0 16 if ($filter_cb)
564 0 0 if (ref \$filter_cb eq 'SCALAR')
569 0 0 unless ref $filter_cb eq 'CODE'
573 0 16 if $display_fields
577 0 16 if ($css eq '.') { }
590 4 3 if (ref $sub_data_action eq 'ARRAY') { }
3 0 elsif (&Scalar::Util::blessed($sub_data_action) and $sub_data_action->isa(ref $self)) { }
602 1 22 if ($following_directives)
614 2 39 if ($key eq '.') { }
631 2 20 if ($css eq '.') { }
644 15 13 ref $_[0] ? :
646 3 25 if $match_spec{'absolute'}
651 10 18 if ($match_spec{'target'} eq 'content') { }
17 1 elsif ($match_spec{'target'} eq 'node') { }
1 0 elsif (my $attr = ${$match_spec{'target'};}) { }
680 3 7 ref $_ ? :
686 0 1 if ($css eq '.') { }
698 49 131 if ($match_spec{'css'} eq '.') { }
710 12 335 unless defined $value
711 1 334 if &Scalar::Util::blessed($value) and $value->isa('Template::Pure::UndefObject')
724 12 189 if ($self->_value_is_undef($safe_value))
725 0 12 if ($target eq 'node') { }
9 3 elsif ($target eq 'content') { }
3 0 elsif (my $attr = $$target) { }
728 4 5 if ($mode eq 'append' or $mode eq 'prepend') { }
740 161 28 if ($mode eq 'replace') { }
23 5 elsif ($mode eq 'append') { }
5 0 elsif ($mode eq 'prepend') { }
741 129 32 if ($target eq 'content') { }
21 11 elsif ($target eq 'node') { }
11 0 elsif (my $attr = $$target) { }
742 129 0 unless $self->_value_is_undef($safe_value)
751 13 10 if ($target eq 'content') { }
5 5 elsif ($target eq 'node') { }
5 0 elsif (my $attr = $$target) { }
762 3 2 if ($target eq 'content') { }
1 1 elsif ($target eq 'node') { }
1 0 elsif (my $attr = $$target) { }