Revision history for Data-ModeMerge
0.14 2009-12-07
- Minor fix to Makefile.PL
- Minor fix to options key handling
0.13 2009-12-07
This is a major refactoring of the module. The goal is to make
the code more flexible (e.g. adding future modes, changing
prefix for each mode, etc). Configuration is also
significantly expanded.
- rename dist: Data-PrefixMerge -> Data-ModeMerge (to reflect
the fact that merging mode can be selected not only via a
"prefix" but more generally by a regex test on key).
- incompatible behaviour: all hash prefixes on the left-side
and right-side hash will be removed recursively after merge,
even if it is not a hash-hash merge, e.g. mode_merge({a=>1},
{b=>{"+c"=>1}) used to become {a=>1, b=>{"+c"=>1}} but now
it will become {a=>1, b=>{c=>1}}. this ensures that all
prefixes are "cleaned" after merge.
- incompatible behaviour: KEEP prefix (^) is now always sticky
so it always protects future merges (equivalent to old
config's preserve_keep_prefix). If you want KEEP prefix to
be removed after merge, set config C<readd_prefix> to 0.
- incompatible change: options key is now enabled by
default, with "" (empty string) as the key.
- incompatible change: configuration 'parse_hash_key_prefix'
renamed to 'parse_prefix'.
- removed: remove_keep_prefix(), replaced by the more generic
remove_prefix().
- configurable prefix for each merging mode.
- new config: set_prefix allows you to change prefixes, even
in the middle of recursive merge.
- new config: allow_override & disallow_override.
- new config: allow_create_array, allow_create_hash,
allow_destroy_array, allow_destroy_hash.
- new config: exclude_parse, exclude_parse_regex,
include_parse, include_parse_regex.
- new config: exclude_merge, exclude_merge_regex,
include_merge, include_merge_regex.
- new config: disable_modes. each merging mode can now be
individually enabled/disabled through configuration.
- options key now understands almost all configuration.
0.12 2009-11-25
- new option: hash_options_key
- fixed random ordering bug (closes #51799)
0.11 2009-11-23
- add max_level parameter to remove_keep_prefixes()
0.10 2009-11-23
- handle recursion in remove_keep_prefixes()
0.09 2009-11-18
- fix bug in remove_keep_prefixes()
0.08 2009-11-18
- new method: remove_keep_prefixes()
0.07 2009-11-18
- minor fixes
0.06 2009-11-08
- INCOMPATIBLE CHANGE: getting and setting config is now done via
$merger->config->confname instead of $merger->config->{confname} to
catch config name typos at compile time.
0.05 2009-06-22
- yet another incompatible change: keep prefix now uses '^' instead of
'!' on the left side. this allows keep mode on the right side. on a
series of merge we can now introduce keep mode at one point (not just
on the first hash) and then preserve that keep mode afterwards.
0.04 2009-06-17
- support KEEP merge for hash & hash
0.03 2009-06-12
- incompatible change: '*' prefix on the left now means normal merge
mode (to protect hash keys having special characters). keep mode now
uses '!' on the left side.
- add config: preserve_prefix (default is 0)
0.02 2009-03-30
Rename Data-RecMerge to Data-PrefixMerge
0.01 2009-03-29
First release