CPAN::Meta::Merge - Merging CPAN Meta fragments |
CPAN::Meta::Merge - Merging CPAN Meta fragments
version 2.150010
my $merger = CPAN::Meta::Merge->new(default_version => "2"); my $meta = $merger->merge($base, @additional);
This creates a CPAN::Meta::Merge object. It takes one mandatory named
argument, version
, declaring the version of the meta-spec that must be
used for the merge. It can optionally take an extra_mappings
argument
that allows one to add additional merging functions for specific elements.
The extra_mappings
arguments takes a hash ref with the same type of
structure as described in the CPAN::Meta::Spec manpage, except with its values as
one of the defined merge strategies or a code ref
to a merging function.
my $merger = CPAN::Meta::Merge->new( default_version => '2', extra_mappings => { 'optional_features' => \&custom_merge_function, 'x_custom' => 'set_addition', 'x_meta_meta' => { name => 'identical', tags => 'set_addition', } } );
merge(@fragments)
Merge all @fragments
together. It will accept both CPAN::Meta objects and
(possibly incomplete) hashrefs of metadata.
merge
uses various strategies to combine different elements of the CPAN::Meta objects. The following strategies can be used with the extra_mappings argument of new
:
[ a, b ] U [ a, c] = [ a, b, c ]
set_addition
strategy, Hash refs will try to use the uniq_map
strategy, and everything else will try the identical
strategy.
This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
CPAN::Meta::Merge - Merging CPAN Meta fragments |