File Coverage

blib/lib/Getopt/Kingpin/Command.pm
Criterion Covered Total %
statement 42 42 100.0
branch 14 14 100.0
condition n/a
subroutine 7 7 100.0
pod 2 2 100.0
total 65 65 100.0


line stmt bran cond sub pod time code
1             package Getopt::Kingpin::Command;
2 28     28   420 use 5.008001;
  28         87  
3 28     28   131 use strict;
  28         51  
  28         792  
4 28     28   148 use warnings;
  28         62  
  28         1004  
5 28     28   200 use Getopt::Kingpin -base;
  28         73  
  28         241  
6 28     28   2940 use Carp;
  28         60  
  28         11390  
7              
8             our $VERSION = "0.09";
9              
10             sub help_short {
11 32     32 1 64 my $self = shift;
12 32         539 my @help = ($self->name);
13              
14 32 100       699 if ($self->name eq "help") {
15 6         42 push @help, "[...]";
16             } else {
17 26 100       573 if ($self->flags->count > 1) {
18 17         40 push @help, "[]";
19             }
20              
21 26 100       424 if ($self->commands->count > 0) {
22 1         9 push @help, "";
23 1         2 push @help, "[ ...]";
24             } else {
25 25         471 foreach my $arg ($self->args->get_all) {
26 21         175 push @help, $arg->help_name(1);
27             }
28             }
29             }
30              
31 32         808 return join " ", @help;
32             }
33              
34             sub help {
35 17     17 1 36 my $self = shift;
36 17         265 printf "usage: %s %s\n", $self->parent->name, $self->help_short;
37 17         235 printf "\n";
38              
39 17 100       462 if ($self->description ne "") {
40 16         384 printf "%s\n", $self->description;
41 16         436 printf "\n";
42             }
43              
44 17         388 printf "%s\n", $self->flags->help;
45              
46 17 100       423 if ($self->args->count > 0) {
47 10         212 printf "%s\n", $self->args->help;
48             }
49              
50 17 100       397 if ($self->commands->count > 1) {
51 1         21 printf "Subcommands:\n";
52 1         25 foreach my $sub ($self->commands->get_all) {
53 2 100       46 next if $sub->name eq "help";
54 1         23 printf " %s %s\n", $sub->parent->name, $sub->name;
55 1         63 printf " %s\n", $sub->description;
56 1         29 printf "\n";
57             }
58             }
59             }
60              
61             1;
62             __END__