summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFlorian Frank <flori@ping.de>2012-10-02 15:57:21 +0200
committerFlorian Frank <flori@ping.de>2012-10-02 15:57:21 +0200
commit7fd0a67e8645bc20b2cec4f0a21029c5e03ce9ed (patch)
treef480da1f3bfb85a3a44e27ba9a1d9a6faa23f639 /lib
parent0d8c4b944ba49df57ffb69d81179d2ae949cd51d (diff)
downloadjson-7fd0a67e8645bc20b2cec4f0a21029c5e03ce9ed.tar.gz
Add JSON::GenericObject.from_hashes
This method transforms hashes of hashes into GenericObject structures.
Diffstat (limited to 'lib')
-rw-r--r--lib/json/generic_object.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/json/generic_object.rb b/lib/json/generic_object.rb
index 7f3dbbd..636ea33 100644
--- a/lib/json/generic_object.rb
+++ b/lib/json/generic_object.rb
@@ -10,6 +10,18 @@ module JSON
data.delete JSON.create_id
self[data]
end
+
+ def from_hashes(hash)
+ result = new
+ hash.to_hash.each do |key, value|
+ if value.respond_to?(:to_hash)
+ result[key] = from_hashes(value)
+ else
+ result[key] = value
+ end
+ end
+ result
+ end
end
def to_hash