File Coverage

lib/Git/Wrapper/Plus/Support/Arguments.pm
Criterion Covered Total %
statement 38 38 100.0
branch 3 6 50.0
condition n/a
subroutine 12 12 100.0
pod 5 5 100.0
total 58 61 95.0


line stmt bran cond sub pod time code
1 2     2   1245 use 5.008; # utf8
  2         8  
  2         390  
2 2     2   14 use strict;
  2         12  
  2         109  
3 2     2   13 use warnings;
  2         5  
  2         84  
4 2     2   787 use utf8;
  2         13  
  2         31  
5              
6             package Git::Wrapper::Plus::Support::Arguments;
7             $Git::Wrapper::Plus::Support::Arguments::VERSION = '0.004010';
8             # ABSTRACT: Database of command argument support data
9              
10             our $AUTHORITY = 'cpan:KENTNL'; # AUTHORITY
11              
12 2     2   961 use Moo qw( has );
  2         21745  
  2         31  
13              
14              
15              
16              
17              
18              
19              
20              
21              
22              
23              
24              
25              
26              
27              
28              
29              
30              
31              
32              
33              
34              
35              
36              
37              
38              
39              
40              
41             has 'entries' => ( is => ro =>, lazy => 1, builder => 1 );
42              
43             sub _build_entries {
44 1     1   830 my $hash = {};
45 1         17 require Git::Wrapper::Plus::Support::RangeDictionary;
46 1         43 $hash->{'cat-file'} = Git::Wrapper::Plus::Support::RangeDictionary->new();
47 1         38 $hash->{'cat-file'}->add_range(
48             '-e' => {
49             'min' => '1.0.0',
50             'min_tag' => '0.99.9l',
51             'min_sha1' => '7950571ad75c1c97e5e53626d8342b01b167c790',
52             },
53             );
54 1         11 return $hash;
55             }
56              
57              
58              
59              
60              
61              
62              
63              
64              
65              
66              
67             sub commands {
68 1     1 1 2164 my ($self) = @_;
69 1         8 my (@items) = sort keys %{ $self->entries };
  1         6  
70 1         6 return @items;
71             }
72              
73              
74              
75              
76              
77              
78              
79              
80              
81              
82              
83             sub arguments {
84 1     1 1 34 my ( $self, $command ) = @_;
85 1 50       8 return unless $self->has_command($command);
86 1         35 return $self->entries->{$command}->entries;
87             }
88              
89              
90              
91              
92              
93              
94              
95              
96              
97              
98              
99             sub has_command {
100 3     3 1 4 my ( $self, $command ) = @_;
101 3         67 return exists $self->entries->{$command};
102             }
103              
104              
105              
106              
107              
108              
109              
110              
111              
112              
113              
114             sub has_argument {
115 2     2 1 11 my ( $self, $command, $argument ) = @_;
116 2 50       14 return unless $self->has_command($command);
117 2         218 return $self->entries->{$command}->has_entry($argument);
118             }
119              
120              
121              
122              
123              
124              
125              
126              
127              
128             sub argument_supports {
129 1     1 1 39 my ( $self, $command, $argument, $version_object ) = @_;
130 1 50       4 return unless $self->has_argument( $command, $argument );
131 1         288 return $self->entries->{$command}->entry_supports( $argument, $version_object );
132             }
133              
134 2     2   3619 no Moo;
  2         4  
  2         16  
135             1;
136              
137             __END__