-
Notifications
You must be signed in to change notification settings - Fork 0
Module to add deep merge functionality to Hashes
License
scriptkitties/p6-Hash-Merge
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
=begin pod =NAME Hash::Merge =VERSION 2.0.0 =AUTHOR Patrick Spek <p.spek+raku@tyil.nl> =head1 Description A module for the Raku programming language to easily deep-merge two hashes. =head2 Usage Base usage requires you to C<use> the module, and pass two C<Hash>es to the imported function, C<merge-hash>. =begin code use Hash::Merge; my %alpha = a => 'b', c => { d => 'e', f => 'g', }, ; my %beta = z => 'y', c => { x => 'w', }, ; my %merged = merge-hash(%alpha, %beta); =end code There are two potential options to pass to C<merge-hash>: =defn C<Bool:D :$deep = True> When set to C<False>, this will not deep merge the C<Hash>es. This means that the second C<Hash> that is passed, will I<overwrite> C<Hash> elements in the first C<Hash>, instead of combining them. =defn C<Bool:D :$positional-append = True> When set to C<False>, this will not append C<Positional> elements. This means that any C<Positional> elements in the second C<Hash> will I<overwrite> C<Positional> elements in the first C<Hash>. There is also a C<use> in this module that allows you to call C<.merge> on existing C<Hash> objects. This requires C<Hash::Merge::Augment>. While this is a fancy way to work, it will break pre-compilation of whatever module is using it. =begin code use Hash::Merge::Augment my %alpha = a => 'b', c => { d => 'e', f => 'g', }, ; %alpha.merge({ z => 'y', c => { x => 'w', }, }); =end code =head2 Contributing The module's source code is available at the following locations: =item L<https://git.sr.ht/~tyil/raku-hash-merge> =item L<https://gitlab.com/tyil/raku-hash-merge> =item L<https://github.com/scriptkitties/p6-Hash-Merge> If you have a change you would like to include, please send a patch to L<mailto:~tyil/raku-devel@lists.sr.ht>. =head2 License This module is distributed under the terms of the Artistic License 2.0. For more information, consult the LICENSE file in the module's source code repository. =end pod
About
Module to add deep merge functionality to Hashes
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published