File Coverage

blib/lib/Module/Changes/Entire.pm
Criterion Covered Total %
statement 34 34 100.0
branch n/a
condition n/a
subroutine 14 14 100.0
pod 6 6 100.0
total 54 54 100.0


line stmt bran cond sub pod time code
1             package Module::Changes::Entire;
2              
3 2     2   1487 use warnings;
  2         4  
  2         68  
4 2     2   11 use strict;
  2         2  
  2         51  
5 2     2   10 use Module::Changes;
  2         3  
  2         27  
6              
7              
8             our $VERSION = '0.05';
9              
10              
11 2     2   70 use base 'Module::Changes::Base';
  2         3  
  2         783  
12              
13              
14             __PACKAGE__
15             ->mk_scalar_accessors(qw(name))
16             ->mk_array_accessors(qw(releases));
17              
18              
19             sub newest_release {
20 13     13 1 5198 my $self = shift;
21 13         48 $self->releases_index(0);
22             }
23              
24              
25             sub add_empty_release {
26 4     4 1 20 my ($self, $callback) = @_;
27 4         11 my $newest_release = $self->newest_release;
28 4         62 my $release = Module::Changes->make_object_for_type('release',
29             version => $newest_release->clone_version,
30             author => $newest_release->author,
31             );
32 4         965 $release->touch_date;
33 4         1167 $callback->($release);
34 4         347 $self->releases_unshift($release);
35             }
36              
37              
38             sub add_new_revision {
39 1     1 1 576 my $self = shift;
40 1     1   8 $self->add_empty_release(sub { $_[0]->version->inc_revision });
  1         5  
41             }
42              
43              
44             sub add_new_version {
45 1     1 1 502 my $self = shift;
46 1     1   8 $self->add_empty_release(sub { $_[0]->version->inc_version });
  1         5  
47             }
48              
49              
50             sub add_new_subversion {
51 1     1 1 8 my $self = shift;
52             $self->add_empty_release(sub {
53 1     1   3 my $release = shift;
54 1         5 $release->version->components(3);
55 1         28 $release->version->inc_subversion;
56 1         10 });
57             }
58              
59              
60             sub add_new_alpha {
61 1     1 1 510 my $self = shift;
62 1     1   7 $self->add_empty_release(sub { $_[0]->version->inc_alpha });
  1         5  
63             }
64              
65              
66             1;
67              
68             __END__