File Coverage

lib/Git/Wrapper/Plus/Support.pm
Criterion Covered Total %
statement 37 39 94.8
branch 7 12 58.3
condition n/a
subroutine 13 13 100.0
pod 3 3 100.0
total 60 67 89.5


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