File Coverage

lib/Git/Wrapper/Plus/Ref/Tag.pm
Criterion Covered Total %
statement 25 33 75.7
branch 2 4 50.0
condition n/a
subroutine 8 10 80.0
pod 4 4 100.0
total 39 51 76.4


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