File Coverage

blib/lib/App/Spec/Parameter.pm
Criterion Covered Total %
statement 23 24 95.8
branch 5 6 83.3
condition 2 3 66.6
subroutine 6 6 100.0
pod 2 2 100.0
total 38 41 92.6


line stmt bran cond sub pod time code
1             # ABSTRACT: App::Spec objects representing command line parameters
2 9     9   234122 use strict;
  9         19  
  9         365  
3 9     9   42 use warnings;
  9         16  
  9         1103  
4             package App::Spec::Parameter;
5              
6             our $VERSION = 'v0.15.0'; # VERSION
7              
8 9     9   64 use base 'App::Spec::Argument';
  9         25  
  9         1838  
9 9     9   55 use Moo;
  9         35  
  9         55  
10              
11             sub build {
12 236     236 1 1223 my ($class, %args) = @_;
13 236         1255 my %hash = $class->common(%args);
14 236         7501 my $self = $class->new({
15             %hash,
16             });
17 236         34318 return $self;
18             }
19              
20             sub to_usage_header {
21 39     39 1 115 my ($self) = @_;
22 39         97 my $name = $self->name;
23 39         65 my $usage = '';
24 39 100 66     274 if ($self->multiple and $self->required) {
    50          
    100          
25 8         54 $usage = "<$name>+";
26             }
27             elsif ($self->multiple) {
28 0         0 $usage = "[<$name>+]";
29             }
30             elsif ($self->required) {
31 28         133 $usage = "<$name>";
32             }
33             else {
34 3         15 $usage = "[<$name>]";
35             }
36             }
37              
38             1;
39              
40             =pod
41              
42             =head1 NAME
43              
44             App::Spec::Parameter - App::Spec objects representing command line parameters
45              
46             =head1 SYNOPSIS
47              
48             This class inherits from L
49              
50             =head1 METHODS
51              
52             =over 4
53              
54             =item build
55              
56             my $param = App::Spec::Parameter->build(
57             name => 'verbose',
58             summary => 'lala',
59             );
60              
61             =item to_usage_header
62              
63             my $param_usage_header = $param->to_usage_header;
64             # results
65             # if multiple and required
66             # <$name>+
67             # if multiple
68             # [<$name>+]
69             # if required
70             # <$name>
71             # else
72             # [<$name>}
73              
74             =back
75              
76             =cut