File Coverage

blib/lib/Software/Release.pm
Criterion Covered Total %
statement 1 3 33.3
branch n/a
condition n/a
subroutine 1 1 100.0
pod n/a
total 2 4 50.0


line stmt bran cond sub pod time code
1             package Software::Release;
2             {
3             $Software::Release::VERSION = '0.03';
4             }
5 1     1   314046 use Moose;
  0            
  0            
6              
7             # ABSTRACT: Object representing a release of software.
8              
9              
10             has changes => (
11             traits => [ 'Array' ],
12             is => 'rw',
13             isa => 'ArrayRef[Software::Release::Change]',
14             default => sub { [] },
15             handles => {
16             add_to_changes => 'push',
17             has_no_changes => 'is_empty'
18             }
19             );
20              
21              
22             has date => (
23             is => 'rw',
24             isa => 'DateTime'
25             );
26              
27              
28             has name => (
29             is => 'rw',
30             isa => 'Str'
31             );
32              
33              
34             has version => (
35             is => 'rw',
36             isa => 'Str',
37             );
38              
39             __PACKAGE__->meta->make_immutable;
40             no Moose;
41             1;
42              
43             __END__
44             =pod
45              
46             =head1 NAME
47              
48             Software::Release - Object representing a release of software.
49              
50             =head1 VERSION
51              
52             version 0.03
53              
54             =head1 SYNOPSIS
55              
56             use DateTime;
57             use Software::Release;
58             use Software::Release::Change;
59              
60             my $change = Software::Release::Change->new(
61             author => 'gphat',
62             change_id => 'abc1234',
63             date => DateTime->now,
64             description => 'Frozzled the wozjob'
65             );
66              
67             my $rel = Software::Release->new(
68             version => '0.1',
69             name => 'Angry Anteater',
70             date => DateTime->now,
71             );
72              
73             $rel->add_to_changes($change);
74              
75             =head1 DESCRIPTION
76              
77             Software::Release is a purely informational collection of objects that you
78             can use to represent a release of software. Its original use-case was to
79             provide a contract between a git log parser and a formatter class that outputs
80             a changelog, but it may be useful to others to create bug trackers, dashboards
81             or whathaveyou.
82              
83             =head1 ATTRIBUTES
84              
85             =head2 changes
86              
87             A list of L<Software::Release::Change> objects for this release.
88              
89             =head2 date
90              
91             The date this software was released.
92              
93             =head2 name
94              
95             The name of this release.
96              
97             =head2 version
98              
99             The version of the release, as a string.
100              
101             =head1 METHODS
102              
103             =head2 add_to_changes ($change)
104              
105             Add a change to this release's list of changes.
106              
107             =head2 has_no_changes
108              
109             Returns true if this release's list of changes is empty.
110              
111             =head1 AUTHOR
112              
113             Cory G Watson <gphat@cpan.org>
114              
115             =head1 COPYRIGHT AND LICENSE
116              
117             This software is copyright (c) 2011 by Infinity Interactive, Inc.
118              
119             This is free software; you can redistribute it and/or modify it under
120             the same terms as the Perl 5 programming language system itself.
121              
122             =cut
123