File Coverage

blib/lib/Git/Wrapper/Plus/Support.pm
Criterion Covered Total %
statement 33 35 94.2
branch 7 12 58.3
condition n/a
subroutine 12 12 100.0
pod 3 3 100.0
total 55 62 88.7


line stmt bran cond sub pod time code
1 7     7   17587 use 5.006; # our
  7         22  
2 7     7   38 use strict;
  7         14  
  7         173  
3 7     7   29 use warnings;
  7         9  
  7         526  
4              
5             package Git::Wrapper::Plus::Support;
6              
7             our $VERSION = '0.004011';
8              
9             # ABSTRACT: Determine what versions of things support what
10              
11             our $AUTHORITY = 'cpan:KENTNL'; # AUTHORITY
12              
13 7     7   666 use Moo qw( has );
  7         10395  
  7         48  
14              
15              
16              
17              
18              
19              
20              
21              
22              
23              
24              
25              
26              
27              
28              
29              
30              
31              
32              
33              
34              
35              
36              
37             has 'git' => ( is => ro =>, required => 1 );
38              
39             has 'versions' => ( is => ro =>, lazy => 1, builder => 1 );
40              
41             sub _build_versions {
42 9     9   232 my ( $self, ) = @_;
43 9         1957 require Git::Wrapper::Plus::Versions;
44 9         150 return Git::Wrapper::Plus::Versions->new( git => $self->git );
45             }
46              
47              
48              
49              
50              
51              
52              
53              
54             has 'commands' => ( is => ro =>, lazy => 1, builder => 1 );
55              
56             sub _build_commands {
57 9     9   2791 require Git::Wrapper::Plus::Support::Commands;
58 9         153 return Git::Wrapper::Plus::Support::Commands->new();
59             }
60              
61              
62              
63              
64              
65              
66              
67              
68             has 'behaviors' => ( is => ro =>, lazy => 1, builder => 1 );
69              
70             sub _build_behaviors {
71 3     3   4586 require Git::Wrapper::Plus::Support::Behaviors;
72 3         115 return Git::Wrapper::Plus::Support::Behaviors->new();
73             }
74              
75              
76              
77              
78              
79              
80              
81              
82             has 'arguments' => ( is => ro =>, lazy => 1, builder => 1 );
83              
84             sub _build_arguments {
85 1     1   1999 require Git::Wrapper::Plus::Support::Arguments;
86 1         7 return Git::Wrapper::Plus::Support::Arguments->new();
87             }
88              
89              
90              
91              
92              
93              
94              
95              
96              
97              
98              
99              
100              
101              
102              
103              
104              
105              
106              
107              
108              
109             sub supports_command {
110 28     28 1 4291 my ( $self, $command ) = @_;
111 28 50       908 return unless $self->commands->has_entry($command);
112 28 100       803 return 1 if $self->commands->entry_supports( $command, $self->versions );
113 1         9 return 0;
114             }
115              
116              
117              
118              
119              
120              
121              
122              
123              
124              
125              
126              
127              
128              
129              
130              
131              
132              
133              
134              
135              
136             sub supports_behavior {
137 6     6 1 89252 my ( $self, $beh ) = @_;
138 6 50       293 return unless $self->behaviors->has_entry($beh);
139 6 50       184 return 1 if $self->behaviors->entry_supports( $beh, $self->versions );
140 0         0 return 0;
141             }
142              
143              
144              
145              
146              
147              
148              
149              
150              
151              
152              
153              
154              
155              
156              
157              
158              
159              
160              
161              
162              
163             sub supports_argument {
164 1     1 1 11 my ( $self, $command, $argument ) = @_;
165 1 50       25 return unless $self->arguments->has_argument( $command, $argument );
166 1 50       31 return 1 if $self->arguments->argument_supports( $command, $argument, $self->versions );
167 0           return 0;
168              
169             }
170              
171 7     7   5435 no Moo;
  7         11  
  7         31  
172             1;
173              
174             __END__