diff options
Diffstat (limited to 'README.rakudoc')
-rw-r--r-- | README.rakudoc | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/README.rakudoc b/README.rakudoc new file mode 100644 index 0000000..c9f3fc3 --- /dev/null +++ b/README.rakudoc @@ -0,0 +1,90 @@ +=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 |