NAME¶
App::KGB::Change - a single file change
SYNOPSIS¶
my $c = App::KGB::Change->new(
{ action => "M", prop_change => 1, path => "/there" } );
print $c;
my $c = App::KGB::Change->new("(M+)/there");
DESCRIPTION¶
App::KGB::Change encapsulates a single path change from a given change
set (or commit).
App::KGB::Change overloads the "" operator in order to provide
a default string representation of changes.
FIELDS¶
- action (mandatory)
- The action performed on the item. Possible values are:
- M
- The path was modified.
- A
- The path was added.
- D
- The path was deleted.
- R
- The path was replaced.
- path (mandatory)
- The path that was changed.
- prop_change
- Boolean. Indicated that some properties of the path, not the content were
changed.
CONSTRUCTOR¶
new ( { initial values } )¶
More-or-less standard constructor.
It can take a hashref with keys all the field names (See ).
Or, it can take a single string, which is de-composed into components.
See for examples.
METHODS¶
- as_string()
- Return a string representation of the change. Used by the ""
overload. The resulting string is suitable for feeding the constructor if
needed.
CLASS METHODS¶
- detect_common_dir("changes")
- Given an arrayref of changes (instances of APP::KGB::Change), detects the
longest path that is common to all of them. All the changes' paths are
trimmed from the common part.
Example:
foo/b
foo/x
foo/bar/a
would return 'foo' and the paths would be trimmed to
b
x
bar/a