Add from_bare_hash to Fieldmapper.pm.
authorJason Stephenson <jstephenson@mvlc.org>
Wed, 25 Sep 2013 22:50:22 +0000 (18:50 -0400)
committerThomas Berezansky <tsbere@mvlc.org>
Tue, 1 Oct 2013 16:56:49 +0000 (12:56 -0400)
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 <jstephenson@mvlc.org>
Open-ILS/src/perlmods/lib/OpenILS/Utils/Fieldmapper.pm

index f8bc724..1c2ef31 100644 (file)
@@ -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] );