File Coverage

blib/lib/Git/Wrapper/Plus/Ref/Tag.pm
Criterion Covered Total %
statement 21 29 72.4
branch 2 4 50.0
condition n/a
subroutine 7 9 77.7
pod 4 4 100.0
total 34 46 73.9


line stmt bran cond sub pod time code
1 2     2   413 use 5.006; # our
  2         4  
2 2     2   10 use strict;
  2         3  
  2         41  
3 2     2   6 use warnings;
  2         4  
  2         122  
4              
5             package Git::Wrapper::Plus::Ref::Tag;
6              
7             our $VERSION = '0.004011';
8              
9             # ABSTRACT: A single tag object
10              
11             our $AUTHORITY = 'cpan:KENTNL'; # AUTHORITY
12              
13              
14              
15              
16              
17              
18              
19              
20              
21              
22              
23              
24              
25 2     2   411 use Moo qw( extends );
  2         9064  
  2         10  
26             extends 'Git::Wrapper::Plus::Ref';
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             ## no critic(NamingConventions::ProhibitMixedCaseSubs)
53             sub new_from_Ref {
54 10     10 1 15 my ( $class, $source_object ) = @_;
55 10 50       44 if ( not $source_object->can('name') ) {
56 0         0 require Carp;
57 0         0 return Carp::croak("Object $source_object does not respond to ->name, cannot Ref -> Tag");
58             }
59 10         17 my $name = $source_object->name;
60             ## no critic ( Compatibility::PerlMinimumVersionAndWhy )
61 10 50       76 if ( $name =~ qr{\Arefs/tags/(.+\z)}msx ) {
62 10         207 return $class->new(
63             git => $source_object->git,
64             name => $1,
65             );
66             }
67 0         0 require Carp;
68 0         0 Carp::croak("Path $name is not in refs/tags/*, cannot convert to Tag object");
69             }
70              
71              
72              
73              
74              
75              
76              
77              
78              
79              
80              
81             sub refname {
82 10     10 1 14 my ($self) = @_;
83 10         50 return 'refs/tags/' . $self->name;
84             }
85              
86              
87              
88              
89              
90             sub verify {
91 0     0 1   my ( $self, ) = @_;
92 0           return $self->git->tag( '-v', $self->name );
93             }
94              
95              
96              
97              
98              
99             ## no critic (ProhibitBuiltinHomonyms)
100              
101             sub delete {
102 0     0 1   my ( $self, ) = @_;
103 0           return $self->git->tag( '-d', $self->name );
104             }
105              
106 2     2   1815 no Moo;
  2         3  
  2         10  
107             1;
108              
109             __END__