Module: JSONAPI::Serialization::IncludesSerialization
- Includes:
- IncludeFiltering, IncludePathHelpers
- Included in:
- JSONAPI::Serializer
- Defined in:
- lib/json_api/serialization/concerns/includes_serialization.rb
Instance Method Summary collapse
- #build_include_context(fields, all_includes) ⇒ Object
- #serialize_included(includes, fields = {}) ⇒ Object
Methods included from IncludeFiltering
#filter_by_query, #filter_by_where_hash, #filter_loaded_records, #record_matches_where_hash?, #where_values_hash_for_scope
Methods included from IncludePathHelpers
#include_paths_to_relationship_names, #normalize_include_paths
Instance Method Details
#build_include_context(fields, all_includes) ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/json_api/serialization/concerns/includes_serialization.rb', line 25 def build_include_context(fields, all_includes) IncludeContext.new( fields: fields, included_records: [], processed: Set.new, all_includes: all_includes, ) end |
#serialize_included(includes, fields = {}) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/json_api/serialization/concerns/includes_serialization.rb', line 16 def serialize_included(includes, fields = {}) all_includes = normalize_include_paths(includes) return [] if all_includes.empty? ctx = build_include_context(fields, all_includes) all_includes.each { |path| serialize_include_path(record, path, ctx, path_from_root: "") } ctx.included_records end |