The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Changes::Group - Group object class

SYNOPSIS

    use Changes::Group;
    my $g = Changes::Group->new(
        line => 12,
        name => 'Front-end',
        spacer => "\t",
        debug => 4,
    ) || die( Changes::Group->error, "\n" );
    my $change = $g->add_change( $change_object );
    # or
    my $change = $g->add_change( text => 'Some comment here' );
    $g->delete_change( $change );
    say $g->as_string;

VERSION

    v0.2.0

DESCRIPTION

This object class represents a Changes file group within a release section. It is completely optional.

METHODS

add_change

Provided with a Changes::Change object, or an hash or hash reference of options passed to the constructor of Changes::Change, and this will add the change object to the list of elements for this group object.

It returns the Changes::Change object, or an error if an error occurred.

as_string

Returns a scalar object of the change group. This is a group name enclosed in square brackets:

    [my group]

It returns a scalar object

If an error occurred, it returns an error

The result of this method is cached so that the second time it is called, the cache is used unless there has been any change.

changes

Read only. This returns an array object containing all the change objects within this group object.

defaults

Sets or gets an hash of default values for the Changes::Change object when it is instantiated by the new_change method.

Default is undef, which means no default value is set.

    my $ch = Changes->new(
        file => '/some/where/Changes',
        defaults => {
            spacer1 => "\t",
            spacer2 => ' ',
            marker => '-',
            max_width => 72,
            wrapper => $code_reference,
        }
    );

delete_change

This takes a list of change to remove and returns an array object of those changes thus removed.

A change provided can only be a Changes::Change object.

If an error occurred, this will return an error

elements

Sets or gets an array object of all the elements within this group object. Those elements can be Changes::Change and Changes::NewLine objects.

line

Sets or gets an integer representing the line number where this line containing this group information was found in the original Changes file. If this object was instantiated separately, then obviously this value will be undef

name

Sets or gets the group name as a scalar object

new_change

Instantiates and returns a new Changes::Change, passing its constructor any argument provided.

    my $change = $rel->new_change( text => 'Some change' ) ||
        die( $rel->error );

new_line

Returns a new Changes::NewLine object, passing it any parameters provided.

If an error occurred, it returns an error object

nl

Sets or gets the new line character, which defaults to \n

It returns a number object

raw

Sets or gets the raw version of the group as found in the Changes file. If set and nothing has been changed, this will be returned by "as_string" instead of computing the formatting of the group.

It returns a scalar object

remove_change

This is an alias for "delete_change"

spacer

Sets or gets the leading space, if any, found before the group.

It returns a scalar object

type

Sets or gets the type of group for this object. This can either be bracket, which is the default, or colon:

    [My group]
    # or
    My group:

AUTHOR

Jacques Deguest <jack@deguest.jp>

SEE ALSO

Changes, Changes::Release, Changes::Change, Changes::Version, Changes::NewLine

COPYRIGHT & LICENSE

Copyright(c) 2022 DEGUEST Pte. Ltd.

All rights reserved

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