From: Jason Stephenson Date: Wed, 25 Sep 2013 22:50:22 +0000 (-0400) Subject: Add from_bare_hash to Fieldmapper.pm. X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=2206fb85a71936eef9ef1e7813fbb16a7df6e1da;p=working%2FEvergreen.git Add from_bare_hash to Fieldmapper.pm. Teach the Perl Fieldmapper.pm to build objects from a hashref in a similar manner to how the JS Fieldmapper already can. Signed-off-by: Jason Stephenson --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Utils/Fieldmapper.pm b/Open-ILS/src/perlmods/lib/OpenILS/Utils/Fieldmapper.pm index f8bc724523..1c2ef311c9 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Utils/Fieldmapper.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Utils/Fieldmapper.pm @@ -439,6 +439,21 @@ sub to_bare_hash { return \%hash; } +# To complement to_bare_hash, and to mimic the fromHash method of the +# JavaScript Fieldmapper, from_bare_hash takes a hashref argument and +# builds an object from that. +sub from_bare_hash { + my $self = shift; + my $hash = shift; + + my $value = $self->new(); + for my $f ($self->properties) { + $value->$f($$hash{$f}); + } + + return $value; +} + sub clone { my $self = shift; return $self->new( [@$self] );