Branch Coverage

blib/lib/Hades/Realm/OO.pm
Criterion Covered Total %
branch 158 318 49.6


line true false branch
9 55 1 scalar @_ == 1 ? :
16 37 117 defined $args{$accessor} ? :
19 0 154 $accessors{$accessor}{'builder'} ? :
21 0 138 unless (not $accessors{$accessor}{'required'} or defined $value)
30 14 41 if (defined $value)
31 4 10 if (ref $value)
41 28 41 if (defined $value)
42 4 24 if ((ref $value || '') ne "HASH")
48 0 24 if (ref $key)
52 6 18 if ((ref $val || '') ne "HASH")
53 4 2 defined $val ? :
57 8 10 if ((ref $val->{'types'} || '') ne "HASH")
59 4 4 defined $val->{'types'} ? :
63 6 4 if ((ref $val->{'attributes'} || '') ne "HASH")
67 4 2 defined $val->{'attributes'} ? :
79 15 42 if (defined $value)
81 0 11 $ref ? :
4 11 if (($ref || 'SCALAR') ne "SCALAR" or not +($ref ? $$value : $value) =~ /^(1|0)$/)
86 0 11 $ref ? :
11 0 !!($ref ? $$value : $value) ? :
100 2 0 if ((ref $mg || '') =~ /^(|HASH|ARRAY|SCALAR|CODE|GLOB)$/)
101 2 0 defined $mg ? :
176 0 0 if ($params[-1] =~ /^(role)$/i) { }
0 0 elsif ($params[-1] =~ /^(with|extends|parent|base)$/) { }
0 0 elsif ($params[-2] and $params[-2] =~ /^(with|extends)$/) { }
181 0 0 if $1 =~ /parent|base/
190 0 0 wantarray ? :
195 2 4 if ((ref $mg || '') =~ /^(|HASH|ARRAY|SCALAR|CODE|GLOB)$/)
196 2 0 defined $mg ? :
200 2 2 if ((ref $meta || '') ne "HASH")
201 2 0 defined $meta ? :
205 2 0 defined $types ? :
206 2 0 if ((ref $types || '') ne "HASH")
207 2 0 defined $types ? :
221 0 0 if $meta->{$_}{'type'}
242 0 0 wantarray ? :
250 0 0 wantarray ? :
255 2 4 if ((ref $mg || '') =~ /^(|HASH|ARRAY|SCALAR|CODE|GLOB)$/)
256 2 0 defined $mg ? :
260 2 2 if (not defined $token or (ref $token || '') ne "ARRAY")
261 2 0 defined $token ? :
265 2 0 if ((ref $meta || '') ne "HASH")
266 2 0 defined $meta ? :
279 2 4 if ((ref $mg || '') =~ /^(|HASH|ARRAY|SCALAR|CODE|GLOB)$/)
280 2 0 defined $mg ? :
284 2 2 if (not defined $name or ref $name)
285 2 0 defined $name ? :
289 2 0 if ((ref $meta || '') ne "HASH")
290 2 0 defined $meta ? :
305 0 0 $self->can("build_accessor_$_") ? :
311 0 0 $self->can('build_accessor_isa') ? :
0 0 unless $meta->{$name}{'isa'}
321 2 4 if ((ref $mg || '') =~ /^(|HASH|ARRAY|SCALAR|CODE|GLOB)$/)
322 2 0 defined $mg ? :
326 2 2 if (not defined $name or ref $name)
327 2 0 defined $name ? :
331 2 0 if ((ref $meta || '') ne "HASH")
332 2 0 defined $meta ? :
337 0 0 unless $self->can("has_function_keyword") and $self->has_function_keyword
343 0 0 if $meta->{$name}{'private'}
344 0 0 if ($meta->{$name}{'param'})
346 0 0 if $params_explanation
350 0 0 if $pm->{'default'}
352 0 0 if ($pm->{'type'}) { }
354 0 0 !($pm->{'type'} =~ /^(Optional|Any|Item)/) ? :
363 0 0 !($pm->{'type'} =~ /^(Optional|Any|Item)/) ? :
393 2 4 if ((ref $mg || '') =~ /^(|HASH|ARRAY|SCALAR|CODE|GLOB)$/)
394 2 0 defined $mg ? :
398 2 2 if (not defined $name or ref $name)
399 2 0 defined $name ? :
403 2 0 if ((ref $meta || '') ne "HASH")
404 2 0 defined $meta ? :
423 2 2 if ((ref $mg || '') =~ /^(|HASH|ARRAY|SCALAR|CODE|GLOB)$/)
424 2 0 defined $mg ? :
428 2 0 if ((ref $meta || '') ne "HASH")
429 2 0 defined $meta ? :
434 0 0 $self->is_role && $self->clear_is_role ? :
442 0 3 if (ref $type eq "ARRAY")
443 0 0 if (scalar @{$type;})
448 1 2 if (not defined $type or ref $type)
449 1 0 defined $type ? :
453 2 0 if ((ref $unique || '') ne "HASH")
454 2 0 defined $unique ? :
459 0 0 if ($type =~ s/^([^\[ ]+)\[(.*)\]$/$2/) { }
0 0 elsif ($type =~ /^\s*\w+\s*\=\>\s*/ or $type =~ /^([^,]+),\s*(.*)$/) { }
461 0 0 if $t =~ /^\w+$/
469 0 0 if (@matches and $match =~ /(Map|Tuple|ArrayRef|Dict)\[/)
473 0 0 $copy =~ /\[|\]/ ? :
478 0 0 $match =~ /\s+\w*\s*\=\>/ ? :
493 2 2 if ((ref $mg || '') =~ /^(|HASH|ARRAY|SCALAR|CODE|GLOB)$/)
494 2 0 defined $mg ? :
498 2 0 if ((ref $meta || '') ne "HASH")
499 2 0 defined $meta ? :
508 2 2 if ((ref $mg || '') =~ /^(|HASH|ARRAY|SCALAR|CODE|GLOB)$/)
509 2 0 defined $mg ? :
513 2 0 if ((ref $meta || '') ne "HASH")
514 2 0 defined $meta ? :
523 2 0 defined $keywords ? :
529 2 0 if (not defined $keywords or (ref $keywords || '') ne "ARRAY")
530 2 0 defined $keywords ? :
539 2 0 if ((ref $meta || '') ne "HASH")
540 2 0 defined $meta ? :
563 2 0 defined $keywords ? :
564 2 0 if (not defined $keywords or (ref $keywords || '') ne "ARRAY")
565 2 0 defined $keywords ? :
574 2 0 if ((ref $meta || '') ne "HASH")
575 2 0 defined $meta ? :
586 2 0 defined $keywords ? :
587 2 0 if (not defined $keywords or (ref $keywords || '') ne "ARRAY")
588 2 0 defined $keywords ? :
597 2 0 if ((ref $meta || '') ne "HASH")
598 2 0 defined $meta ? :
604 0 0 unless $meta->{'extends'} =~ /^["'q]/
611 2 0 defined $keywords ? :
612 2 0 if (not defined $keywords or (ref $keywords || '') ne "ARRAY")
613 2 0 defined $keywords ? :
622 2 0 if ((ref $meta || '') ne "HASH")
623 2 0 defined $meta ? :
628 0 0 unless $meta->{'with'} =~ /^["'q]/
635 2 0 defined $keywords ? :
636 2 0 if (not defined $keywords or (ref $keywords || '') ne "ARRAY")
637 2 0 defined $keywords ? :
646 2 0 if ((ref $meta || '') ne "HASH")
647 2 0 defined $meta ? :
653 0 0 unless $meta->{'requires'} =~ /^["'q]/
660 2 0 defined $keywords ? :
661 2 0 if (not defined $keywords or (ref $keywords || '') ne "ARRAY")
662 2 0 defined $keywords ? :
671 2 0 if ((ref $meta || '') ne "HASH")
672 2 0 defined $meta ? :
684 2 0 defined $keywords ? :
685 2 0 if (not defined $keywords or (ref $keywords || '') ne "ARRAY")
686 2 0 defined $keywords ? :
695 2 0 if ((ref $meta || '') ne "HASH")
696 2 0 defined $meta ? :
708 2 0 defined $keywords ? :
709 2 0 if (not defined $keywords or (ref $keywords || '') ne "ARRAY")
710 2 0 defined $keywords ? :
719 2 0 if ((ref $meta || '') ne "HASH")
720 2 0 defined $meta ? :
732 2 2 if (not defined $name or ref $name)
733 2 0 defined $name ? :
737 2 0 if (not defined $content or ref $content)
738 2 0 defined $content ? :
744 0 0 $content =~ /^(\w+|1)$/ ? :
757 2 2 if (not defined $name or ref $name)
758 2 0 defined $name ? :
762 2 0 if (not defined $content or ref $content)
763 2 0 defined $content ? :
768 0 0 $content =~ /^\w+$/ ? :
779 2 2 if (not defined $name or ref $name)
780 2 0 defined $name ? :
784 2 0 if (not defined $content or ref $content)
785 2 0 defined $content ? :
790 0 0 $content =~ /^\w+$/ ? :
801 2 2 if (not defined $name or ref $name)
802 2 0 defined $name ? :
806 2 0 if (not defined $content or ref $content)
807 2 0 defined $content ? :