Module: Menilite::Serializer

Defined in:
lib/menilite/server/serializer.rb

Class Method Summary collapse

Class Method Details

.serialize(obj, 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
# File 'lib/menilite/server/serializer.rb', line 3

def self.serialize(obj, includes=nil)
  case obj
  when Menilite::Model
    hash = obj.to_h
    if includes
      case includes
      when String, Symbol
        hash[includes.to_s] = obj[includes].to_h
      when Array
        includes.each do |i|
          hash[i.to_s] = obj[i].to_h
        end
      when Hash
        includes.each do |k, v|
          hash[k.to_s] = Menilite::Serializer.serialize(obj[k], v)
        end
      end
    end
    hash.delete_if{|k, v| v.is_a?(Menilite::Model::Association)}
  when Array
    obj.map {|o| Menilite::Serializer.serialize(o, includes) }
  end
end