| line | true | false | branch | 
 
| 110 | 2 | 0 | if (ref $item eq 'HASH') { } | 
 
|  | 0 | 0 | elsif (not ref $item) { } | 
 
| 113 | 0 | 2 | unless defined $item->{'path'} and $item->{'path'} ne '' | 
 
| 116 | 0 | 2 | if $item->{'path'} ne '/' and $item->{'path'} =~ qr" ^ / | / $ | // | [?#] "sx | 
 
| 132 | 0 | 1 | unless $last_node | 
 
| 153 | 0 | 2 | if (defined $ds->{'path_defs'}{$path}) { } | 
 
| 176 | 0 | 6 | unless $NODE_DEF{$key} | 
 
| 183 | 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') { } | 
 
| 202 | 0 | 0 | if (ref $value eq 'ARRAY') { } | 
 
| 206 | 0 | 0 | unless ref $v eq 'CODE' or not ref $v | 
 
| 213 | 0 | 0 | unless ref $value eq 'CODE' or not ref $value | 
 
| 229 | 0 | 0 | unless ($value =~ qr/ ^ (?> [\w.:][\w.:-]* | \s*,\s* )* $ /sx or $value =~ qr/ ^ (?> [+-][\w.:][\w.:-]* | \s*,\s* )* $ /sx) | 
 
| 236 | 0 | 0 | if $value =~ qr/ ^ (?> \s*,\s* )* [+-] /sx | 
 
| 244 | 0 | 1 | unless ($value =~ qr/ ^ (?> [\w.:-]+ | \s*,\s* )+ $ /sx) | 
 
| 265 | 0 | 2 | if (defined $place) | 
 
| 270 | 0 | 0 | if ($place > 0 and defined $list and $list ne '') { } | 
 
|  | 0 | 0 | elsif ($place ne '0') { } | 
 
| 290 | 0 | 2 | if ($role and not $Web::DataService::ONE_REQUEST) | 
 
| 310 | 0 | 2 | if ($role) | 
 
| 314 | 0 | 0 | if $role =~ qr/ [.] pm $ /sx | 
 
| 318 | 0 | 0 | unless %{"${role}::";} | 
 
| 326 | 0 | 2 | if ($method) | 
 
| 328 | 0 | 0 | unless defined $role | 
 
| 331 | 0 | 0 | unless $role->can($method) | 
 
| 340 | 0 | 2 | if $method | 
 
| 341 | 0 | 2 | if $ds->node_attr($path, 'file_dir') | 
 
| 342 | 0 | 2 | if $ds->node_attr($path, 'file_path') | 
 
| 344 | 0 | 2 | if ($method and $attr_count > 1) { } | 
 
|  | 0 | 2 | elsif ($attr_count > 1) { } | 
 
| 360 | 2 | 0 | if (ref $allow_format and &reftype($allow_format) eq 'HASH') | 
 
| 365 | 0 | 4 | unless ref $ds->{'format'}{$f} | 
 
| 377 | 2 | 0 | if (ref $allow_vocab and &reftype($allow_vocab) eq 'HASH') | 
 
| 382 | 0 | 4 | unless ref $ds->{'vocab'}{$v} | 
 
| 392 | 0 | 2 | if (defined $place and not $place =~ qr/^[0-9]+$/) | 
 
| 426 | 0 | 0 | if (ref $item eq 'HASH') { } | 
 
|  | 0 | 0 | elsif (not ref $item) { } | 
 
| 429 | 0 | 0 | unless defined $item->{'path'} and $item->{'path'} ne '' | 
 
| 432 | 0 | 0 | if $item->{'path'} ne '/' and $item->{'path'} =~ qr" ^ / | / $ | // | [?#] "sx | 
 
| 448 | 0 | 0 | unless $last_node | 
 
| 465 | 0 | 0 | unless $NODE_DEF{$key} | 
 
| 471 | 0 | 0 | unless defined $place and $place =~ qr/^[0-9]+$/ | 
 
| 474 | 0 | 0 | unless defined $list and $list ne '' | 
 
| 479 | 0 | 0 | if $place | 
 
| 509 | 0 | 0 | if (ref $item eq 'HASH') { } | 
 
|  | 0 | 0 | elsif (not ref $item) { } | 
 
| 513 | 0 | 0 | unless defined $item->{'path'} and $item->{'path'} ne '' or defined $item->{'type'} and $item->{'type'} ne '' | 
 
| 516 | 0 | 0 | if $item->{'path'} ne '/' and $item->{'path'} =~ qr" ^ / | / $ | // | [?#] "sx | 
 
| 532 | 0 | 0 | unless $last_node | 
 
| 551 | 0 | 0 | unless $name | 
 
| 558 | 0 | 0 | unless $EXTENDED_DEF{$key} | 
 
| 561 | 0 | 0 | unless $disp eq '' or $disp eq 'replace' or $disp eq 'add' or $disp eq 'para' | 
 
| 564 | 0 | 0 | if ($path) { } | 
 
|  | 0 | 0 | elsif ($type eq 'format') { } | 
 
|  | 0 | 0 | elsif ($type eq 'vocab') { } | 
 
| 567 | 0 | 0 | if $item->{'name'} | 
 
| 569 | 0 | 0 | if $type ne 'node' | 
 
| 573 | 0 | 0 | unless ref $ds->{'node_attrs'}{$path} eq 'HASH' | 
 
| 576 | 0 | 0 | if $disp | 
 
| 582 | 0 | 0 | unless $name | 
 
| 586 | 0 | 0 | unless ref $ds->{'format'}{$name} eq 'Web::DataService::Format' | 
 
| 589 | 0 | 0 | if $disp | 
 
| 595 | 0 | 0 | unless $name | 
 
| 599 | 0 | 0 | unless ref $ds->{'format'}{$name} eq 'Web::DataService::Vocab' | 
 
| 602 | 0 | 0 | if $disp | 
 
| 608 | 0 | 0 | unless $type | 
 
| 611 | 0 | 0 | if $type eq 'node' | 
 
| 614 | 0 | 0 | unless $type eq 'node' or $type eq 'format' or $type eq 'vocab' | 
 
| 626 | 0 | 0 | unless defined $doc | 
 
| 630 | 0 | 0 | if ref $doc | 
 
| 642 | 0 | 0 | unless defined $item->{'doc_string'} | 
 
| 643 | 0 | 0 | if $item->{'doc_string'} ne '' | 
 
| 656 | 0 | 0 | unless defined $path | 
 
| 657 | 0 | 0 | if $path eq '' | 
 
| 676 | 0 | 19 | if (ref $path and &reftype($path) eq 'HASH') | 
 
| 688 | 2 | 17 | if (exists $ds->{'attr_cache'}{$path}{$key}) | 
 
| 700 | 0 | 17 | unless $key and defined $NODE_DEF{$key} | 
 
| 701 | 0 | 17 | unless defined $path and $path ne '' | 
 
| 703 | 0 | 17 | if $path eq '' | 
 
| 705 | 0 | 17 | unless exists $ds->{'node_attrs'}{$path} | 
 
| 731 | 3 | 21 | if ($NODE_NONHERITABLE{$key}) | 
 
| 742 | 19 | 2 | if (not exists $ds->{'node_attrs'}{$path}{$key} or $ds->{'path_compose'}{$path}{$key}) | 
 
| 749 | 7 | 12 | if (defined $parent) { } | 
 
| 761 | 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') { } | 
 
| 799 | 19 | 0 | unless (exists $ds->{'node_attrs'}{$path}{$key}) | 
 
| 815 | 0 | 2 | if ($NODE_DEF{$key} eq 'set') { } | 
 
|  | 1 | 1 | elsif ($NODE_DEF{$key} eq 'list') { } | 
 
|  | 0 | 1 | elsif ($NODE_DEF{$key} eq 'hook') { } | 
 
| 817 | 0 | 0 | ref $inherited_value eq 'HASH' ? : | 
 
| 822 | 0 | 0 | unless $v =~ /^([+-])?(.*)/ | 
 
| 824 | 0 | 0 | if (defined $1 and $1 eq '-') { } | 
 
| 846 | 1 | 0 | if defined $v and $v ne '' | 
 
| 854 | 0 | 0 | if (ref $inherited_value eq 'ARRAY' and @$inherited_value) { } | 
 
| 892 | 0 | 19 | unless defined $path | 
 
| 893 | 17 | 2 | if exists $ds->{'path_parent'}{$path} | 
 
| 897 | 1 | 1 | if ($path eq '/' or $path eq '') { } | 
 
|  | 1 | 0 | elsif ($path =~ qr" ^ [^/]+ $ "sx) { } | 
 
|  | 0 | 0 | elsif ($path =~ qr" ^ (.+) / [^/]+ "sx) { } | 
 
| 927 | 0 | 3 | unless defined $doc | 
 
| 929 | 0 | 3 | if ref $doc | 
 
| 935 | 3 | 0 | unless ($node->{'doc_string'}) | 
 
| 937 | 0 | 3 | if ($doc =~ qr/ ^ ! (.*) /sx) | 
 
| 951 | 3 | 0 | unless defined $node->{'doc_string'} | 
 
| 952 | 0 | 3 | if $node->{'doc_string'} ne '' and $doc ne '' |