NAME

CPAN::Changes::Release - Information about a particular release

SYNOPSIS

my $rel = CPAN::Changes::Release->new(
    version => '0.01',
    date    => '2009-07-06',
);

$rel->add_changes(
    { group => 'THINGS THAT MAY BREAK YOUR CODE' },
    'Return a Foo object instead of a Bar object in foobar()'
);

DESCRIPTION

A changelog is made up of one or more releases. This object provides access to all of the key data that embodies a release including the version number, date of release, and all of the changelog information lines. Any number of changelog lines can be grouped together under a heading.

METHODS

new( %args )

Creates a new release object, using %args as the default data.

version( [ $version ] )

Gets/sets the version number for this release.

date( [ $date ] )

Gets/sets the date for this release.

note( [ $note ] )

Gets/sets the note for this release.

changes( [ $group ] )

Gets the list of changes for this release as a hashref of group/changes pairs. If a group name is specified, an array ref of changes for that group is returned. Should that group not exist, undef is returned.

add_changes( [ \%options ], @changes )

Appends a list of changes to the release. Specifying a group option appends them to that particular group. NB: the default group is represented by and empty string.

# Append to default group
$release->add_changes( 'Added foo() function' );

# Append to a particular group
$release->add_changes( { group => 'Fixes' }, 'Fixed foo() function' );

set_changes( [ \%options ], @changes )

Replaces the existing list of changes with the supplied values. Specifying a group option will only replace change items in that group.

clear_changes( )

Clears all changes from the release.

groups( sort => \&sorting_function )

Returns a list of current groups in this release.

If sort is provided, groups are sorted according to the given function. If not, they are sorted alphabetically.

add_group( @groups )

Creates an empty group under the names provided.

delete_group( @groups )

Deletes the groups of changes specified.

delete_empty_groups( )

Deletes all groups that don't contain any changes.

serialize( group_sort => \&sorting_function )

Returns the release data as a string, suitable for inclusion in a Changes file.

If group_sort is provided, change groups are sorted according to the given function. If not, groups are sorted alphabetically.

get_group( [ $name ] )

Returns the internal CPAN::Changes::Group object for the group $name.

If $name is not specified, the default group ('') will be returned.

If $name does not exist, a CPAN::Changes::Group object will be created, and returned.

attach_group( $group_object )

Attach a CPAN::Changes::Group object to the ::Release. Note that the name is not specified, as it is instead determined from $group_object->name

group_values( sort => \&sorting_function )

Works like "groups" but instead returns CPAN::Changes::Group compatible objects.

SEE ALSO

AUTHOR

Brian Cassidy <bricas@cpan.org>

COPYRIGHT AND LICENSE

Copyright 2011-2013 by Brian Cassidy

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