Branch Coverage

blib/lib/App/Easer/V2.pm
Criterion Covered Total %
branch 177 284 62.3


line true false branch
20 0 0 ref $stuff[0] || @stuff % 2 ? :
0 0 @stuff == 0 ? :
29 0 0 ref $app eq 'ARRAY' ? :
87 0 ref $app eq 'HASH' ? :
42 6 8 if ($request eq '-command') { }
0 8 elsif ($request eq '-inherit') { }
0 8 elsif ($request eq '-register') { }
4 4 elsif ($request eq '-spec') { }
55 0 4 unless @args
57 0 4 unless ref $args[0] eq "HASH"
84 1476 4876 if @newval
92 0 2370 unless defined $aref
98 135 0 wantarray ? :
107 111 24 if (my(@aliases) = $self->_rwad(@r))
108 22 2 if (defined(my $name = $self->_rwn("name")))
140 951 18 if ref $spec eq "HASH"
141 18 0 unless ref $spec
142 0 18 unless ref $spec eq "ARRAY"
144 0 18 unless my $method = $self->can($method_name)
153 18 0 if ($_ eq '+parent') { }
165 0 0 if not $_->{'transmit_exact'} and $name =~ /$namerx/u
176 153 154 @args && ref $args[0] ? :
205 827 126 if $is_overridable{$dst_key} or not exists $retval{$dst_key}
206 953 0 unless $this_overridable
223 5 655 ref $source eq 'ARRAY' ? :
224 2 658 @opts && ref $opts[0] ? :
226 658 2 unless (ref $src)
228 334 324 if defined $priority
231 0 660 unless my $sub = $self->ref_to_sub($locator)
234 160 500 if defined $residuals
238 499 41 if $sequence[$i - 1][0] <= $sequence[$i][0]
252 160 0 unless (defined $value)
254 96 64 if $self->list_children
255 0 160 if $self->allow_residual_options
272 0 300 ref $go eq 'ARRAY' ? :
275 0 160 unless Getopt::Long::GetOptionsFromArray(\@args, \%option_for, @specs)
280 0 160 if $strict and @args and $args[0] =~ /\A - . /msux
287 0 295 if defined $o->{'name'}
289 295 0 if defined $o->{'getopt'} and $o->{'getopt'} =~ /\A(\w[-\w]*)/msux
291 0 0 if defined $o->{'environment'} and $o->{'environment'} ne 1
306 0 9 unless defined $conf->{$key}
308 0 9 unless ref $conf eq "HASH"
317 8 100 $self->auto_environment ? :
196 108 exists $ospec->{'environment'} ? :
319 211 93 unless ($env // "") eq 1
336 40 230 defined $en && exists $ENV{$en} ? :
344 7 9 unless defined(my $filename = $self->config($key))
350 0 9 unless open my $fh, $mode, $file
364 85 73 unless my $parent = $self->parent
375 0 155 if $blame
382 32 0 if @keys == 1
389 0 0 if @value
396 0 160 if @n
397 160 0 unless $commit
406 0 160 if @n
410 0 160 if ($validator) { }
0 160 elsif (my $params_validate = $self->params_validate) { }
411 0 0 unless ref $validator eq "CODE"
417 0 0 if (my $config_validator = $params_validate->{'config'} // undef)
421 0 0 if (my $args_validator = $params_validate->{'args'} // undef)
432 0 92 unless defined $command
435 87 64 if $child->supports($command)
441 0 26 unless defined(my $default = $self->default_child)
443 22 4 if $default eq "-self"
444 0 4 unless my $child = $self->find_matching_child($default)
460 64 96 unless my(@candidates) = $self->list_children
462 70 26 if (@residuals) { }
26 0 elsif (defined(my $default = $self->default_child)) { }
463 65 5 if (my $child = $self->find_matching_child($residuals[0]))
473 1 4 if (defined $fallback)
474 1 0 if $fallback eq "-self"
475 0 0 if $fallback eq "-default"
477 0 0 if (my $child = $self->find_matching_child($fallback))
504 0 4067 if (opendir my $dh, 'File::Spec'->catpath($v, $dirs, '')) { }
511 0 0 if -e $path and not -d $path and substr($_, 0, length $bprefix) eq $bprefix
527 302 140 if $self->force_auto_children // @children
534 5 906 if $inflate
554 0 0 unless eval { do { require $file } }
562 0 706 unless defined $spec
564 48 658 if ref $spec eq "CODE"
565 0 658 ref $spec eq 'ARRAY' ? :
569 657 1 unless length($class // "")
570 0 1 unless $class->can($function)
575 0 220 unless $class->can("new")
584 220 0 unless (&blessed($child))
585 43 135 ref $child eq 'HASH' ? :
42 178 ref $child eq 'ARRAY' ? :
598 5 0 unless defined $fto and $fto =~ /\A(?: 0 | [1-9]\d* )\z/u
600 0 0 if $fto <= $#children
606 0 46 unless my $spec = $self->_rw
607 0 46 unless my $sub = $self->ref_to_sub($spec)
617 69 87 if defined $child
632 0 58 if @rest
634 18 40 if defined $subc
635 0 58 unless defined $target
645 0 64 unless @aliases
647 2 62 if @aliases
650 12 18 unless @lines
658 0 29 if $refch eq "CODE"
661 0 29 if ($refch eq 'GLOB') { }
0 29 elsif ($refch eq 'SCALAR') { }
0 29 elsif ($refch) { }
665 0 0 unless open $fh, ">", $channel
672 29 0 if ($channel eq '-' or lc $channel eq '-stdout') { }
0 0 elsif (lc $channel eq '-stderr') { }
679 0 0 unless open $fh, ">", $channel
681 29 0 if length($binmode // "")
692 29 0 unless $pof
699 6 1 if (defined(my $commands = $self->list_commands_for($target))) { }
719 15 19 if (substr($getopt, -1, 1) eq '!') { }
1 18 elsif ($getopt =~ s/:\+ ([\@%])? \z//msux) { }
1 17 elsif (substr($getopt, -1, 1) eq '+') { }
15 2 elsif ($getopt =~ s/( [:=]) # 1 mode ([siof]) # 2 type ([\@%])? # 3 desttype (?: \{ (\d*)? # 4 min ,? (\d*)? # 5 max \} )? \z//msux) { }
1 1 elsif ($getopt =~ s/: (\d+) ([\@%])? \z//msux) { }
730 0 1 if defined $desttype and $desttype eq "\@"
753 14 1 $1 eq '=' ? :
758 0 15 if (defined $min)
759 0 0 $min ? :
768 0 15 if defined $min and $min > 1
769 0 15 if defined $max and length $max
771 1 14 if defined $desttype and $desttype eq "\@"
780 0 1 if defined $desttype and $desttype eq "\@"
789 15 19 if ($type eq 'bool-negatable') { }
2 17 elsif ($type eq 'bool' or $mode eq 'increment') { }
3 14 elsif ($mode eq 'optional') { }
791 13 16 if (length $_ == 1) { }
797 1 2 if (length $_ == 1) { }
803 0 3 if (length $_ == 1) { }
809 13 14 if (length $_ == 1) { }
828 21 2 if (defined(my $description = $target->description))
835 11 12 if $target->parent
839 17 6 if (my(@options) = $target->options) { }
843 17 17 if $n++
848 34 0 if (exists $opt->{'getopt'})
856 14 20 if (defined(my $env = $self->environment_variable_name($opt)))
862 8 26 if exists $opt->{'default'}
871 12 11 if (defined(my $commands = $self->list_commands_for($target))) { }
899 0 0 $self->config('include_auto') ? :
902 0 0 unless my($name) = $command->aliases
904 0 0 if $name =~ /\A(?: help | commands | tree)\z/msux and $exclude_auto
907 0 0 if (defined(my $subtree = $self->list_commands_for($command)))
911 0 0 unless @lines