module HttpApiTools::Nesting::JsonSerializer
Private Class Methods
included(serializer_class)
click to toggle source
# File lib/http_api_tools/nesting/json_serializer.rb, line 39 def self.included(serializer_class) JsonSerializerDsl.apply_to(serializer_class) end
Public Instance Methods
as_json(*args)
click to toggle source
# File lib/http_api_tools/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: meta_data.merge(includes_meta_data) }) end
serialize()
click to toggle source
# File lib/http_api_tools/nesting/json_serializer.rb, line 23 def serialize assert_id_present(serializable) attribute_hash.merge(relation_loader.relation_hash) end
Private Instance Methods
relation_loader()
click to toggle source
# File lib/http_api_tools/nesting/json_serializer.rb, line 30 def relation_loader @relation_loader ||= Relationloader.new({ serializable: serializable, has_manys: has_manys, has_ones: has_ones, relation_includes: relation_includes }) end