Branch Coverage

blib/lib/Extender.pm
Criterion Covered Total %
branch 36 70 51.4


line true false branch
24 0 3 unless (exists $INC{$module} or defined *{"${module}::";})
26 0 0 if $@
33 3 0 $#methods > -1 ? :
50 4 0 if (ref $extend{$name} eq 'CODE') { }
0 0 elsif (ref $extend{$name} eq 'SCALAR' and defined ${$extend{$name};} and ref ${$extend{$name};} eq 'CODE') { }
78 0 1 unless ref $object and ref $object ne "HASH" and ref $object ne "ARRAY" and ref $object ne "SCALAR"
81 0 1 unless defined $existing_method and $existing_method =~ /^\w+$/
84 0 1 unless defined $new_name and $new_name =~ /^\w+$/
103 0 1 unless defined $method_name and $method_name =~ /^\w+$/
106 0 1 unless ref $code_ref eq "CODE"
120 1 0 ref $object ? :
124 1 0 if ($is_object) { }
127 0 1 unless $coderef
132 0 0 unless defined $original_method
136 1 0 if ($is_object) { }
162 0 3 unless defined $object
163 0 3 unless defined $role_class and $role_class =~ /^\w+$/
166 1 2 unless (exists $INC{$role_class} or defined *{"${role_class}::";})
168 1 0 if $@
175 1 1 if ($apply_method) { }
181 1 1 if ($@)
182 1 0 if ($@ =~ /Role $role_class does not implement apply method/) { }
198 0 2 unless defined $class and $class =~ /^\w+$/
199 0 2 unless $hook_name =~ /^(INIT|DESTRUCT)$/
210 1 1 if ($hook_name eq 'INIT') { }
1 0 elsif ($hook_name eq 'DESTRUCT') { }
215 0 2 unless $class->{'_INIT_hooks'}
228 0 1 unless $class->{'_DESTRUCT_hooks'}
231 1 0 if $original_destroy and ref $self
245 0 1 unless $ref_type and $ref_type ne "CODE"
248 0 1 unless @methods
252 0 1 if ($ref_type eq "GLOB")
256 0 1 unless $pkg
261 0 1 unless defined $method
264 1 0 if (exists do { $pkg . '::' }->{$method})