File Coverage

blib/lib/ShipIt/Step/ApplyYAMLChangeLogVersion.pm
Criterion Covered Total %
statement 15 25 60.0
branch 0 8 0.0
condition 0 2 0.0
subroutine 5 7 71.4
pod 2 2 100.0
total 22 44 50.0


line stmt bran cond sub pod time code
1             package ShipIt::Step::ApplyYAMLChangeLogVersion;
2              
3 1     1   5 use strict;
  1         2  
  1         33  
4 1     1   6 use warnings;
  1         1  
  1         61  
5 1     1   941 use Dist::Joseki;
  1         2768  
  1         10  
6 1     1   965 use Dist::Joseki::Version;
  1         16802  
  1         18  
7              
8              
9             our $VERSION = '0.02';
10              
11              
12 1     1   63 use base qw(ShipIt::Step);
  1         2  
  1         822  
13              
14              
15             sub init {
16 0     0 1   my ($self, $conf) = @_;
17              
18 0   0       $self->{file} = $conf->value("ApplyYAMLChangeLogVersion.file") ||
19             'Changes';
20             }
21              
22              
23             sub run {
24 0     0 1   my ($self, $state) = @_;
25              
26 0           my $version = Dist::Joseki::Version->new->
27             get_newest_version($self->{file});
28 0           my $is_tagged = $state->vc->exists_tagged_version($version);
29              
30 0 0         die "Version $version is already tagged. Update $self->{file}.\n" if
31             $is_tagged;
32              
33 0 0         -e $self->{file} or die "$self->{file} does not exist\n";
34 0 0         -r $self->{file} or die "$self->{file} is not readable\n";
35              
36             # call dist(1) so the ~/.distrc gets used
37 0 0         system("dist version -s -f $self->{file}") and
38             die "Can't apply YAML Changelog version: $?\n";
39              
40 0           $state->set_version($version);
41             }
42              
43              
44             1;
45              
46              
47             __END__