| 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 '' |