| line |
true |
false |
branch |
|
111
|
2 |
0 |
if (ref $item eq 'HASH') { } |
|
|
0 |
0 |
elsif (not ref $item) { } |
|
114
|
0 |
2 |
unless defined $item->{'path'} and $item->{'path'} ne '' |
|
117
|
0 |
2 |
if $item->{'path'} ne '/' and $item->{'path'} =~ qr" ^ / | / $ | // | [?#] "sx |
|
133
|
0 |
1 |
unless $last_node |
|
154
|
0 |
2 |
if (defined $ds->{'path_defs'}{$path}) { } |
|
177
|
0 |
6 |
unless $NODE_DEF{$key} |
|
184
|
0 |
6 |
if (not defined $value or $value eq '') { } |
|
|
3 |
3 |
elsif ($NODE_DEF{$key} eq 'single') { } |
|
|
0 |
3 |
elsif ($NODE_DEF{$key} eq 'hook') { } |
|
|
0 |
3 |
elsif ($NODE_DEF{$key} eq 'set') { } |
|
|
1 |
2 |
elsif ($NODE_DEF{$key} eq 'list') { } |
|
203
|
0 |
0 |
if (ref $value eq 'ARRAY') { } |
|
207
|
0 |
0 |
unless ref $v eq 'CODE' or not ref $v |
|
214
|
0 |
0 |
unless ref $value eq 'CODE' or not ref $value |
|
230
|
0 |
0 |
unless ($value =~ qr/ ^ (?> [\w.:][\w.:-]* | \s*,\s* )* $ /sx or $value =~ qr/ ^ (?> [+-][\w.:][\w.:-]* | \s*,\s* )* $ /sx) |
|
237
|
0 |
0 |
if $value =~ qr/ ^ (?> \s*,\s* )* [+-] /sx |
|
245
|
0 |
1 |
unless ($value =~ qr/ ^ (?> [\w.:-]+ | \s*,\s* )+ $ /sx) |
|
266
|
0 |
2 |
if (defined $place) |
|
271
|
0 |
0 |
if ($place > 0 and defined $list and $list ne '') { } |
|
|
0 |
0 |
elsif ($place ne '0') { } |
|
291
|
0 |
2 |
if ($role and not $Web::DataService::ONE_REQUEST) |
|
311
|
0 |
2 |
if ($role) |
|
315
|
0 |
0 |
if $role =~ qr/ [.] pm $ /sx |
|
319
|
0 |
0 |
unless %{"${role}::";} |
|
327
|
0 |
2 |
if ($method) |
|
329
|
0 |
0 |
unless defined $role |
|
332
|
0 |
0 |
unless $role->can($method) |
|
341
|
0 |
2 |
if $method |
|
342
|
0 |
2 |
if $ds->node_attr($path, 'file_dir') |
|
343
|
0 |
2 |
if $ds->node_attr($path, 'file_path') |
|
345
|
0 |
2 |
if ($method and $attr_count > 1) { } |
|
|
0 |
2 |
elsif ($attr_count > 1) { } |
|
361
|
2 |
0 |
if (ref $allow_format and &reftype($allow_format) eq 'HASH') |
|
366
|
0 |
4 |
unless ref $ds->{'format'}{$f} |
|
378
|
2 |
0 |
if (ref $allow_vocab and &reftype($allow_vocab) eq 'HASH') |
|
383
|
0 |
4 |
unless ref $ds->{'vocab'}{$v} |
|
393
|
0 |
2 |
if (defined $place and not $place =~ qr/^[0-9]+$/) |
|
427
|
0 |
0 |
if (ref $item eq 'HASH') { } |
|
|
0 |
0 |
elsif (not ref $item) { } |
|
430
|
0 |
0 |
unless defined $item->{'path'} and $item->{'path'} ne '' |
|
433
|
0 |
0 |
if $item->{'path'} ne '/' and $item->{'path'} =~ qr" ^ / | / $ | // | [?#] "sx |
|
449
|
0 |
0 |
unless $last_node |
|
466
|
0 |
0 |
unless $NODE_DEF{$key} |
|
472
|
0 |
0 |
unless defined $place and $place =~ qr/^[0-9]+$/ |
|
475
|
0 |
0 |
unless defined $list and $list ne '' |
|
480
|
0 |
0 |
if $place |
|
510
|
0 |
0 |
if (ref $item eq 'HASH') { } |
|
|
0 |
0 |
elsif (not ref $item) { } |
|
514
|
0 |
0 |
unless defined $item->{'path'} and $item->{'path'} ne '' or defined $item->{'type'} and $item->{'type'} ne '' |
|
517
|
0 |
0 |
if $item->{'path'} ne '/' and $item->{'path'} =~ qr" ^ / | / $ | // | [?#] "sx |
|
533
|
0 |
0 |
unless $last_node |
|
552
|
0 |
0 |
unless $name |
|
559
|
0 |
0 |
unless $EXTENDED_DEF{$key} |
|
562
|
0 |
0 |
unless $disp eq '' or $disp eq 'replace' or $disp eq 'add' or $disp eq 'para' |
|
565
|
0 |
0 |
if ($path) { } |
|
|
0 |
0 |
elsif ($type eq 'format') { } |
|
|
0 |
0 |
elsif ($type eq 'vocab') { } |
|
568
|
0 |
0 |
if $item->{'name'} |
|
570
|
0 |
0 |
if $type ne 'node' |
|
574
|
0 |
0 |
unless ref $ds->{'node_attrs'}{$path} eq 'HASH' |
|
577
|
0 |
0 |
if $disp |
|
583
|
0 |
0 |
unless $name |
|
587
|
0 |
0 |
unless ref $ds->{'format'}{$name} eq 'Web::DataService::Format' |
|
590
|
0 |
0 |
if $disp |
|
596
|
0 |
0 |
unless $name |
|
600
|
0 |
0 |
unless ref $ds->{'format'}{$name} eq 'Web::DataService::Vocab' |
|
603
|
0 |
0 |
if $disp |
|
609
|
0 |
0 |
unless $type |
|
612
|
0 |
0 |
if $type eq 'node' |
|
615
|
0 |
0 |
unless $type eq 'node' or $type eq 'format' or $type eq 'vocab' |
|
627
|
0 |
0 |
unless defined $doc |
|
631
|
0 |
0 |
if ref $doc |
|
643
|
0 |
0 |
unless defined $item->{'doc_string'} |
|
644
|
0 |
0 |
if $item->{'doc_string'} ne '' |
|
657
|
0 |
0 |
unless defined $path |
|
658
|
0 |
0 |
if $path eq '' |
|
677
|
0 |
19 |
if (ref $path and &reftype($path) eq 'HASH') |
|
689
|
2 |
17 |
if (exists $ds->{'attr_cache'}{$path}{$key}) |
|
701
|
0 |
17 |
unless $key and defined $NODE_DEF{$key} |
|
702
|
0 |
17 |
unless defined $path and $path ne '' |
|
704
|
0 |
17 |
if $path eq '' |
|
706
|
0 |
17 |
unless exists $ds->{'node_attrs'}{$path} |
|
732
|
3 |
21 |
if ($NODE_NONHERITABLE{$key}) |
|
743
|
19 |
2 |
if (not exists $ds->{'node_attrs'}{$path}{$key} or $ds->{'path_compose'}{$path}{$key}) |
|
750
|
7 |
12 |
if (defined $parent) { } |
|
762
|
0 |
12 |
if (defined $config_value) { } |
|
|
0 |
12 |
elsif (defined $NODE_ATTR_DEFAULT{$key}) { } |
|
|
0 |
12 |
elsif ($key eq 'allow_method') { } |
|
|
2 |
10 |
elsif ($key eq 'allow_format') { } |
|
|
2 |
8 |
elsif ($key eq 'allow_vocab') { } |
|
800
|
19 |
0 |
unless (exists $ds->{'node_attrs'}{$path}{$key}) |
|
816
|
0 |
2 |
if ($NODE_DEF{$key} eq 'set') { } |
|
|
1 |
1 |
elsif ($NODE_DEF{$key} eq 'list') { } |
|
|
0 |
1 |
elsif ($NODE_DEF{$key} eq 'hook') { } |
|
818
|
0 |
0 |
ref $inherited_value eq 'HASH' ? : |
|
823
|
0 |
0 |
unless $v =~ /^([+-])?(.*)/ |
|
825
|
0 |
0 |
if (defined $1 and $1 eq '-') { } |
|
847
|
1 |
0 |
if defined $v and $v ne '' |
|
855
|
0 |
0 |
if (ref $inherited_value eq 'ARRAY' and @$inherited_value) { } |
|
893
|
0 |
19 |
unless defined $path |
|
894
|
17 |
2 |
if exists $ds->{'path_parent'}{$path} |
|
898
|
1 |
1 |
if ($path eq '/' or $path eq '') { } |
|
|
1 |
0 |
elsif ($path =~ qr" ^ [^/]+ $ "sx) { } |
|
|
0 |
0 |
elsif ($path =~ qr" ^ (.+) / [^/]+ "sx) { } |
|
928
|
0 |
3 |
unless defined $doc |
|
930
|
0 |
3 |
if ref $doc |
|
936
|
3 |
0 |
unless ($node->{'doc_string'}) |
|
938
|
0 |
3 |
if ($doc =~ qr/ ^ ! (.*) /sx) |
|
952
|
3 |
0 |
unless defined $node->{'doc_string'} |
|
953
|
0 |
3 |
if $node->{'doc_string'} ne '' and $doc ne '' |