Module: Hat::Nesting::JsonSerializer

Includes:
BaseJsonSerializer
Defined in:
lib/hat/nesting/json_serializer.rb

Instance Attribute Summary

Attributes included from BaseJsonSerializer

#relation_includes, #result, #serializable

Instance Method Summary collapse

Methods included from BaseJsonSerializer

#attribute_hash, #attributes, #has_manys, #has_ones, #includable, #includes, #initialize, #meta, #to_json

Instance Method Details

#as_json(*args) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/hat/nesting/json_serializer.rb', line 13

def as_json(*args)

  result[root_key] = Array(serializable).map do |serializable_item|
    serializer = self.class.new(serializable_item, { result: {} })
    serializer.includes(*relation_includes).serialize
  end

  result.merge({ meta: .merge() })
end

#serializeObject



23
24
25
26
# File 'lib/hat/nesting/json_serializer.rb', line 23

def serialize
  assert_id_present(serializable)
  attribute_hash.merge(relation_loader.relation_hash)
end