File Coverage

blib/lib/Git/Wrapper/Plus.pm
Criterion Covered Total %
statement 44 47 93.6
branch 8 12 66.6
condition n/a
subroutine 11 11 100.0
pod 1 1 100.0
total 64 71 90.1


line stmt bran cond sub pod time code
1 4     4   1645 use 5.006; # our
  4         10  
2 4     4   16 use strict;
  4         5  
  4         77  
3 4     4   14 use warnings;
  4         4  
  4         254  
4              
5             package Git::Wrapper::Plus;
6              
7             our $VERSION = '0.004011';
8              
9             # ABSTRACT: A Toolkit for working with Git::Wrapper in an Object Oriented Way.
10              
11             our $AUTHORITY = 'cpan:KENTNL'; # AUTHORITY
12              
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              
42              
43              
44              
45              
46              
47              
48              
49              
50              
51              
52              
53              
54              
55              
56              
57              
58              
59              
60              
61              
62              
63              
64              
65              
66              
67              
68              
69              
70              
71              
72              
73              
74              
75              
76              
77              
78              
79              
80              
81              
82              
83              
84              
85              
86              
87              
88              
89              
90              
91              
92              
93              
94              
95              
96              
97              
98              
99              
100              
101              
102              
103              
104              
105              
106 4     4   439 use Moo qw( has );
  4         9083  
  4         18  
107 4     4   1617 use Scalar::Util qw( blessed );
  4         5  
  4         1814  
108              
109              
110              
111              
112              
113              
114              
115              
116              
117              
118              
119              
120             sub BUILDARGS {
121 4     4 1 4440 my ( undef, @args ) = @_;
122 4 50       16 if ( 1 == @args ) {
123             blesscheck: {
124 4 50       5 if ( blessed $args[0] ) {
  4         23  
125 4 100       42 if ( $args[0]->isa('Path::Tiny') ) {
126 2         11 $args[0] = q[] . $args[0];
127 2         14 last blesscheck;
128             }
129 2 100       10 if ( $args[0]->isa('Path::Class::Dir') ) {
130 1         5 $args[0] = q[] . $args[0];
131 1         22 last blesscheck;
132             }
133 1 50       4 if ( $args[0]->isa('Path::Class::File') ) {
134 0         0 $args[0] = q[] . $args[0];
135 0         0 last blesscheck;
136             }
137 1         15 return { git => $args[0] };
138             }
139             }
140 3 50       13 return $args[0] if ref $args[0];
141              
142 3         20 require Git::Wrapper;
143 3         14 return { git => Git::Wrapper->new( $args[0] ) };
144             }
145 0         0 return {@args};
146             }
147              
148              
149              
150              
151              
152              
153              
154             has git => ( is => ro =>, required => 1 );
155              
156             has refs => ( is => ro =>, lazy => 1, builder => 1 );
157              
158             sub _build_refs {
159 1     1   1416 my ( $self, ) = @_;
160 1         452 require Git::Wrapper::Plus::Refs;
161 1         7 return Git::Wrapper::Plus::Refs->new( git => $self->git );
162             }
163              
164              
165              
166              
167              
168             has tags => ( is => ro =>, lazy => 1, builder => 1 );
169              
170             sub _build_tags {
171 1     1   394 my ( $self, ) = @_;
172 1         424 require Git::Wrapper::Plus::Tags;
173 1         7 return Git::Wrapper::Plus::Tags->new( git => $self->git );
174             }
175              
176              
177              
178              
179              
180             has branches => ( is => ro =>, lazy => 1, builder => 1 );
181              
182             sub _build_branches {
183 1     1   1372 my ( $self, ) = @_;
184 1         387 require Git::Wrapper::Plus::Branches;
185 1         7 return Git::Wrapper::Plus::Branches->new( git => $self->git );
186             }
187              
188              
189              
190              
191              
192             has versions => ( is => ro =>, lazy => 1, builder => 1 );
193              
194             sub _build_versions {
195 1     1   1355 my ( $self, ) = @_;
196 1         6 require Git::Wrapper::Plus::Versions;
197 1         19 return Git::Wrapper::Plus::Versions->new( git => $self->git );
198             }
199              
200              
201              
202              
203              
204             has support => ( is => ro =>, lazy => 1, builder => 1 );
205              
206             sub _build_support {
207 1     1   386 my ( $self, ) = @_;
208 1         391 require Git::Wrapper::Plus::Support;
209 1         8 return Git::Wrapper::Plus::Support->new( git => $self->git );
210             }
211              
212             1;
213              
214             __END__