Module: Menilite::Deserializer

Defined in:
lib/menilite/client/deserializer.rb

Class Method Summary collapse

Class Method Details

.deserialize(model_class, json, includes = nil) ⇒ Object



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