Condition Coverage

blib/lib/Respite/Base.pm
Criterion Covered Total %
condition 66 165 40.0


and 3 conditions

line !l l&&!r l&&r condition
27 0 0 0 $utf8 && (!ref($utf8) || $utf8->{$meth})
32 0 0 0 $trp and $trp ne "json"
52 0 0 0 ref $resp eq 'HASH' && exists $resp->{'_utf8_encoded'}
87 0 0 0 ref $v ? _encode_utf8_recurse($v) : $v and utf8::is_utf8($v)
89 0 0 0 ref $v ? _encode_utf8_recurse($v) : $v and utf8::is_utf8($v)
98 0 0 0 ref $v ? _decode_utf8_recurse($v, $seen) : $v and not utf8::is_utf8($v)
100 0 0 0 ref $v ? _decode_utf8_recurse($v, $seen) : $v and not utf8::is_utf8($v)
113 3 0 0 my $ra = $meta->{'requires_admin'} and eval { do { $self->api_meta->{'enforce_requires_admin'} } } || do { my $e = $@; die $e if $e and !ref($e) || $e->{'type'} ne 'no_meta'; 0 }
133 0 0 0 $_[0]{'base'} && $_[0]{'base'}->is_server
166 8 0 0 $code = $self->can($meth) and $code ne \&{'Respite::Base' . "::$meth";}
203 0 0 21 $qr and not ref $qr
209 0 49 0 $qr and not $meth =~ /$qr/
224 19 0 2 $meta->{'allow_nested'} || $opt->{'allow_nested'} and defined &{"${pkg}::api_meta";}
19 0 2 $meta->{'allow_nested'} || $opt->{'allow_nested'} and defined &{"${pkg}::api_meta";} and $pkg->can("find_method")
227 0 18 0 $qr and not $meth =~ /$qr/
232 17 0 4 $meth and $cache->{$meth}
257 3 0 0 $opt->{'pkg_exclude'} and $pkg =~ /$opt->{'pkg_exclude'}/
289 14 0 0 $qr and not $name =~ /$qr/
291 14 0 0 $ENV{'REQUEST_METHOD'} and $meta->{'no_listing'}
323 1 0 0 $args->{'test_auth'} && $self->require_admin

or 2 conditions

line l !l condition
21 0 0 $self->api_meta || {}
28 0 0 $self->{'transport'} || ''
66 0 31 $self->{'_autoload'}{$meth} || 0
95 0 0 shift() || {}
117 1 2 validate($args || {}, $val_hash) || (return 1)
159 40 0 $self->api_meta || {}
161 27 13 $meta->{'_cache'}{ref $self} ||= {%{{} unless $meta->{'methods'};}}
185 15 9 $meta->{$type} || (next)
202 18 3 $opt->{'match'} || 1
213 20 10 $opt->{'dispatch_type'} || $meta->{'dispatch_type'} || 'new'
245 0 0 $INC{$file} || ''
323 0 1 eval { do { $self->api_brand } } || undef

or 3 conditions

line l !l&&r !l&&!r condition
25 0 0 0 $self->find_method($meth) || throw('Invalid Respite method', {'class', ref $self, 'method', $meth})
34 0 0 0 eval { do { $self->$code($args, $extra) } } || do { my $resp = $@; $resp = eval { do { throw('Trouble dispatching', {'method', $meth, 'msg', $resp}) } } || $@ unless ref $resp and $resp->{'error'}; warn $resp if $trp ne 'cmdline'; $resp }
68 30 1 0 $self->find_method($meth) || throw('Invalid Respite method during AUTOLOAD', {'class', ref $self, 'method', $meth}, 1)
79 9 0 0 $self->{'api_meta'} ||= $ref eq __PACKAGE__ ? throw("No api_meta defined", {"class", $self, "type", "no_meta"}) : {}
108 0 0 3 $sub eq "(eval)" or $sub =~ /::validate_args$/
112 3 0 0 $meta->{'args'} || throw('Missing args in meta information', {'method', $sub}, 1)
113 0 0 0 eval { do { $self->api_meta->{'enforce_requires_admin'} } } || do { my $e = $@; die $e if $e and !ref($e) || $e->{'type'} ne 'no_meta'; 0 }
126 0 0 1 $_[0]->is_local && $ENV{'PROV'} || throw('Missing api_brand', 0, 1)
144 0 0 0 $self->base_class || throw('Could not find a base_class when accessing base from direct source', 0, 1)
177 27 18 9 $meth =~ /__meta$/ or $meth =~ /^__/
18 9 0 $meth =~ /__meta$/ or $meth =~ /^__/ or defined &{"${pkg}::${meth}__meta";}
179 9 45 0 $cache->{$name} ||= "${pkg}::$meth"
186 1 3 0 $cache->{'--load--'}{'lib_dirs'} ||= $self->_load_lib_dir($NS)
191 0 18 0 $opt->{'pkg'} || $opt->{'package'} || do { (my $pkg = $ns) =~ s/(?:_|\b)([a-z])/\u$1/g; $pkg }
194 1 0 0 $opt->{'file'} ||= $file
203 19 0 2 $qr eq '1' || $qr eq '*'
210 10 13 26 $meth =~ /__meta$/ or $meth =~ /^__/
13 10 16 $meth =~ /__meta$/ or $meth =~ /^__/ or defined &{"${pkg}::${meth}__meta";}
212 0 0 33 $opt->{'full_name'} or $name =~ /^\Q$ns\E_/
218 0 1 0 $base->{'base'} || $base
221 6 7 0 $base->{$pkg} ||= do { my $s = $pkg->new({"base", $base, $base->SHARE}); builtin::weaken($s->{'base'}); $s }
222 2 31 0 $cache->{$name} ||= $dt eq "new" ? sub { my $base = shift(); $pkg->new({"base", $base, "called_from_base", 1, $base->SHARE})->$meth(@_); } : ($dt eq "morph" ? sub { my $base = shift(); my $prev = ref $base; local $base->{'base'} = $base->{'base'} || $base; builtin::weaken($base->{'base'}); my $resp; my $ok = eval { do { bless $base, $pkg; $resp = $base->$meth(@_); 1 } }; my $err = $@; bless $base, $prev; die $err unless $ok; return $resp; } : ($dt eq "cache" ? sub { my $base = shift(); ($base->{$pkg} ||= do { my $s = $pkg->new({"base", $base, $base->SHARE}); builtin::weaken($s->{'base'}); $s })->$meth(@_); } : throw("Unknown dispatch_type", {"dispatch_type", $dt}, 1)))
224 2 0 19 $meta->{'allow_nested'} || $opt->{'allow_nested'}
228 0 0 18 $opt->{'full_name'} || $meth =~ /^\Q$ns\E_/
268 3 0 0 ref $_[0] || $_[0]
282 2 0 0 ref $self || $self
290 13 1 0 eval { do { $self->$meth } } || do { (my $err = $@ || '') =~ s[ at /.*][]s; +{'desc', 'Not documented' . ($err ? ": $err" : '')} }