From 01a5165bee5c8cf199e37b3ccc90f1f824d41783 Mon Sep 17 00:00:00 2001 From: Florian Frank Date: Tue, 2 Oct 2012 16:27:29 +0200 Subject: Renamed method and handle arrays --- lib/json/generic_object.rb | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'lib/json/generic_object.rb') diff --git a/lib/json/generic_object.rb b/lib/json/generic_object.rb index 636ea33..cd93e1a 100644 --- a/lib/json/generic_object.rb +++ b/lib/json/generic_object.rb @@ -11,16 +11,19 @@ module JSON 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 + def from_hash(object) + case + when object.respond_to?(:to_hash) + result = new + object.to_hash.each do |key, value| + result[key] = from_hash(value) end + result + when object.respond_to?(:to_ary) + object.to_ary.map { |a| from_hash(a) } + else + object end - result end end -- cgit v1.2.1