X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FAutobox%2FHash.pm;h=ba2eb218f42b4f5345872baa13780bd271973ce1;hb=b3cb70385763ff1067a42fa7e470177bef3485e8;hp=5c318dc2903f7fef35d4e40ef371001ade338135;hpb=8937074ab98e81964dee9ccf9bbd939ebf3252a0;p=gitmo%2FMoose-Autobox.git
diff --git a/lib/Moose/Autobox/Hash.pm b/lib/Moose/Autobox/Hash.pm
index 5c318dc..ba2eb21 100644
--- a/lib/Moose/Autobox/Hash.pm
+++ b/lib/Moose/Autobox/Hash.pm
@@ -1,7 +1,9 @@
package Moose::Autobox::Hash;
use Moose::Role 'with';
-our $VERSION = '0.01';
+use Carp qw(croak);
+
+our $VERSION = '0.02';
with 'Moose::Autobox::Ref',
'Moose::Autobox::Indexed';
@@ -11,6 +13,13 @@ sub delete {
CORE::delete $hash->{$key};
}
+sub merge {
+ my ($left, $right) = @_;
+ croak "You must pass a hashref as argument to merge"
+ unless ref $right eq 'HASH';
+ return { %$left, %$right };
+}
+
# ::Indexed implementation
sub at {
@@ -43,6 +52,9 @@ sub kv {
[ CORE::map { [ $_, $hash->{$_} ] } CORE::keys %$hash ];
}
+sub print { CORE::print %{$_[0]} }
+sub say { CORE::print %{$_[0]}, "\n" }
+
1;
__END__
@@ -56,7 +68,6 @@ Moose::Autobox::Hash - the Hash role
=head1 SYNOPOSIS
use Moose::Autobox;
- use autobox;
print { one => 1, two => 2 }->keys->join(', '); # prints 'one, two'
@@ -68,13 +79,16 @@ This is a role to describes a Hash value.
=over 4
-=item B
-
=item B
+=item B
+
+Takes a hashref and returns a new hashref with right precedence
+shallow merging.
+
=back
-=head2 Moose::Autobox::Indexed implementation
+=head2 Indexed implementation
=over 4
@@ -92,6 +106,16 @@ This is a role to describes a Hash value.
=back
+=over 4
+
+=item B
+
+=item B
+
+=item B
+
+=back
+
=head1 BUGS
All complex software has bugs lurking in it, and this module is no
@@ -104,11 +128,12 @@ Stevan Little Estevan@iinteractive.comE
=head1 COPYRIGHT AND LICENSE
-Copyright 2006 by Infinity Interactive, Inc.
+Copyright 2006-2007 by Infinity Interactive, Inc.
L
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
-=cut
\ No newline at end of file
+=cut
+