3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/menilite/client/deserializer.rb', line 3
def self.deserialize(model_class, json, includes = nil)
case json
when Array
json.map {|j| deserialize(model_class, j, includes) }
when Hash
if includes
case includes
when String
assoc_data = json.delete(includes)
assoc_id = json.delete(:id)
obj = model_class.new(json)
assoc = obj.send(includes).model_class.new(assoc_data)
obj.send(includes + '=', assoc)
obj
when Array
raise "not implemented"
when Hash
raise "not implemented"
end
else
model_class.new(json)
end
end
end
|