Class: JsonApi::Serializer
- Inherits:
-
Object
- Object
- JsonApi::Serializer
show all
- Defined in:
- lib/json_api_ruby/serializer.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(object, options) ⇒ Serializer
Returns a new instance of Serializer.
25
26
27
28
29
30
|
# File 'lib/json_api_ruby/serializer.rb', line 25
def initialize(object, options)
@meta = options.fetch('meta', Hash.new).stringify_keys
@object = object
@includes = options.fetch('include', Includes.new)
@resource_class = options.fetch('resource_class', nil)
end
|
Instance Attribute Details
#object ⇒ Object
Returns the value of attribute object.
23
24
25
|
# File 'lib/json_api_ruby/serializer.rb', line 23
def object
@object
end
|
Instance Method Details
#assemble_included_data(included_resources) ⇒ Object
39
40
41
|
# File 'lib/json_api_ruby/serializer.rb', line 39
def assemble_included_data(included_resources)
included_resources.map(&:to_hash)
end
|
#find_included_resources(object_resource) ⇒ Object
43
44
45
46
47
|
# File 'lib/json_api_ruby/serializer.rb', line 43
def find_included_resources(object_resource)
included_resources = object_resource.relationships.select {|rel| rel.included?}.flat_map {|rel| rel.resources }
included_resources += included_resources.flat_map {|res| find_included_resources(res) }
included_resources.flatten
end
|
#resource(object) ⇒ Object
32
33
34
35
36
37
|
# File 'lib/json_api_ruby/serializer.rb', line 32
def resource(object)
resource_name = "#{object.class.to_s.underscore}_resource".classify
klass_name = @resource_class || resource_name
resource_klass = Resources::Discovery.resource_for_name(object, resource_class: klass_name)
resource_klass.new(object, include: Includes.parse_includes(@includes))
end
|
#unique_identifiers!(resources) ⇒ Object
49
50
51
52
|
# File 'lib/json_api_ruby/serializer.rb', line 49
def unique_identifiers!(resources)
resources.uniq! { |rel| rel.id + rel.type }
resources
end
|