Branch Coverage

blib/lib/Template/Pure.pm
Criterion Covered Total %
branch 187 240 77.9


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 189 unless $collection->size
273 50 68 unless exists $self->{'root_data'}
282 1 234 if (ref $directive or !1)
287 1 233 if ($directive =~ /\=\{/g)
289 1 1 ref $_ eq 'HASH' ? :
296 0 234 if $match_spec{'absolute'}
298 1 233 if ($match_spec{'mode'} eq 'filter') { }
24 209 elsif ((ref $action_proto || '') eq 'HASH') { }
17 192 elsif ((ref $action_proto || '') eq 'ARRAY') { }
21 171 elsif ((ref $action_proto || '') eq 'CODE') { }
10 161 elsif (&Scalar::Util::blessed($action_proto)) { }
319 9 179 if (&Scalar::Util::blessed($value_proto) and $value_proto->isa('Template::Pure') || $value_proto->can('TO_HTML')) { }
2 177 elsif ((ref $value_proto || '') eq 'CODE') { }
1 176 elsif ((ref $value_proto || '') eq 'ARRAY') { }
337 15 4 if ($obj->isa(ref $self)) { }
3 1 elsif ($obj->can('TO_HTML')) { }
1 0 elsif ($obj->isa('Mojo::DOM58')) { }
338 12 3 if ($css eq '.') { }
346 3 1 if ($match_spec{'target'} eq 'content') { }
1 0 elsif ($match_spec{'target'} eq 'node') { }
0 0 elsif (my $attr = ${$match_spec{'target'};}) { }
364 1 2 if ($css eq '.') { }
383 167 13 if (ref \$action_proto eq 'SCALAR') { }
13 0 elsif ((ref $action_proto || '') eq 'SCALAR') { }
401 10 157 if ($first_open >= 0 and $first_open < $first_pipe or $first_open >= 0 and $first_pipe == -1) { }
411 18 13 ref $_ eq 'HASH' ? :
416 3 7 if (&Scalar::Util::blessed($parts[-1]) and index("$parts[-1]", '|') > 0)
430 2 155 if (defined(my $literal = $data_spec{'literal'})) { }
441 8 15 if ($css eq '.') { }
471 9 109 if ((ref $directives[0] || '') eq 'HASH')
492 2 22 exists $action{'order_by'} ? :
493 1 23 exists $action{'grep'} ? :
494 0 24 exists $action{'filter'} ? :
495 0 24 exists $action{'display_fields'} ? :
496 1 23 exists $action{'directives'} ? :
499 17 7 if (index($sub_data_proto, '<-') > 0) { }
501 5 12 if (ref \$sub_data_action eq 'SCALAR')
503 1 4 if $match_spec->{'mode'} eq 'append'
504 0 5 if $match_spec->{'mode'} eq 'prepend'
505 0 5 if $match_spec->{'mode'} eq 'filter'
506 0 5 if $match_spec->{'target'} eq 'node'
510 2 15 if (ref $sub_data_action eq 'CODE')
512 0 2 if $match_spec->{'mode'} eq 'append'
513 1 1 if $match_spec->{'mode'} eq 'prepend'
514 0 2 if $match_spec->{'mode'} eq 'filter'
515 0 2 if $match_spec->{'target'} eq 'node'
519 2 15 if (&Scalar::Util::blessed($sub_data_action))
521 0 2 if $match_spec->{'mode'} eq 'append'
522 0 2 if $match_spec->{'mode'} eq 'prepend'
523 0 2 if $match_spec->{'mode'} eq 'filter'
524 1 1 if $match_spec->{'target'} eq 'node'
528 0 17 unless ref $sub_data_action eq 'ARRAY'
539 1 16 if $self->_value_is_undef($itr_data_proto)
543 0 16 if ($display_fields)
547 2 14 if ($sort_cb)
548 0 2 if (ref \$sort_cb eq 'SCALAR')
553 0 2 unless ref $sort_cb eq 'CODE'
556 1 15 if ($grep_cb)
557 1 0 if (ref \$grep_cb eq 'SCALAR')
562 0 1 unless ref $grep_cb eq 'CODE'
565 0 16 if ($filter_cb)
566 0 0 if (ref \$filter_cb eq 'SCALAR')
571 0 0 unless ref $filter_cb eq 'CODE'
575 0 16 if $display_fields
579 0 16 if ($css eq '.') { }
592 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)) { }
604 1 22 if ($following_directives)
616 2 39 if ($key eq '.') { }
633 2 21 if ($css eq '.') { }
646 15 13 ref $_[0] ? :
648 3 25 if $match_spec{'absolute'}
653 10 18 if ($match_spec{'target'} eq 'content') { }
17 1 elsif ($match_spec{'target'} eq 'node') { }
1 0 elsif (my $attr = ${$match_spec{'target'};}) { }
682 3 7 ref $_ ? :
688 0 1 if ($css eq '.') { }
700 49 132 if ($match_spec{'css'} eq '.') { }
712 12 336 unless defined $value
713 1 335 if &Scalar::Util::blessed($value) and $value->isa('Template::Pure::UndefObject')
726 12 190 if ($self->_value_is_undef($safe_value))
727 0 12 if ($target eq 'node') { }
9 3 elsif ($target eq 'content') { }
3 0 elsif (my $attr = $$target) { }
730 4 5 if ($mode eq 'append' or $mode eq 'prepend') { }
742 161 29 if ($mode eq 'replace') { }
24 5 elsif ($mode eq 'append') { }
5 0 elsif ($mode eq 'prepend') { }
743 129 32 if ($target eq 'content') { }
21 11 elsif ($target eq 'node') { }
11 0 elsif (my $attr = $$target) { }
744 129 0 unless $self->_value_is_undef($safe_value)
753 14 10 if ($target eq 'content') { }
5 5 elsif ($target eq 'node') { }
5 0 elsif (my $attr = $$target) { }
764 3 2 if ($target eq 'content') { }
1 1 elsif ($target eq 'node') { }
1 0 elsif (my $attr = $$target) { }