Module: JSONAPI::Serialization::IncludesSerialization
Instance Method Summary
collapse
#filter_loaded_records
#include_paths_to_relationship_names, #normalize_include_paths
Instance Method Details
#build_include_context(fields, all_includes) ⇒ Object
26
27
28
|
# File 'lib/json_api/serialization/concerns/includes_serialization.rb', line 26
def build_include_context(fields, all_includes)
IncludeContext.new(fields:, included_records: [], processed: Set.new, all_includes:)
end
|
#serialize_included(includes, fields = {}, context: nil) ⇒ Object
16
17
18
19
20
21
22
23
24
|
# File 'lib/json_api/serialization/concerns/includes_serialization.rb', line 16
def serialize_included(includes, fields = {}, context: nil)
all_includes = normalize_include_paths(includes)
return context&.included_records || [] if all_includes.empty?
ctx = context || build_include_context(fields, all_includes)
ctx.all_includes ||= all_includes
all_includes.each { |path| serialize_include_path(record, path, ctx, path_from_root: "") }
ctx.included_records
end
|