File: Release.pm

package info (click to toggle)
libsoftware-release-perl 0.03-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 112 kB
  • sloc: perl: 87; makefile: 2
file content (123 lines) | stat: -rw-r--r-- 2,232 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package Software::Release;
{
  $Software::Release::VERSION = '0.03';
}
use Moose;

# ABSTRACT: Object representing a release of software.


has changes => (
    traits => [ 'Array' ],
    is => 'rw',
    isa => 'ArrayRef[Software::Release::Change]',
    default => sub { [] },
    handles => {
        add_to_changes => 'push',
        has_no_changes => 'is_empty'
    }
);


has date => (
    is => 'rw',
    isa => 'DateTime'
);


has name => (
    is => 'rw',
    isa => 'Str'
);


has version => (
    is => 'rw',
    isa => 'Str',
);

__PACKAGE__->meta->make_immutable;
no Moose;
1;

__END__
=pod

=head1 NAME

Software::Release - Object representing a release of software.

=head1 VERSION

version 0.03

=head1 SYNOPSIS

    use DateTime;
    use Software::Release;
    use Software::Release::Change;

    my $change = Software::Release::Change->new(
        author => 'gphat',
        change_id => 'abc1234',
        date => DateTime->now,
        description => 'Frozzled the wozjob'
    );

    my $rel = Software::Release->new(
        version => '0.1',
        name => 'Angry Anteater',
        date => DateTime->now,
    );

    $rel->add_to_changes($change);

=head1 DESCRIPTION

Software::Release is a purely informational collection of objects that you
can use to represent a release of software.  Its original use-case was to
provide a contract between a git log parser and a formatter class that outputs
a changelog, but it may be useful to others to create bug trackers, dashboards
or whathaveyou.

=head1 ATTRIBUTES

=head2 changes

A list of L<Software::Release::Change> objects for this release.

=head2 date

The date this software was released.

=head2 name

The name of this release.

=head2 version

The version of the release, as a string.

=head1 METHODS

=head2 add_to_changes ($change)

Add a change to this release's list of changes.

=head2 has_no_changes

Returns true if this release's list of changes is empty.

=head1 AUTHOR

Cory G Watson <gphat@cpan.org>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Infinity Interactive, Inc.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut