Class: JSONAPI::Serializer
- Inherits:
-
Object
- Object
- JSONAPI::Serializer
- Includes:
- ActiveStorageSupport
- Defined in:
- lib/json_api/serialization/serializer.rb
Class Method Summary collapse
-
.jsonapi_object ⇒ Object
Class method for generating the JSON:API object.
Instance Method Summary collapse
-
#initialize(record, definition: nil, base_definition: nil) ⇒ Serializer
constructor
A new instance of Serializer.
- #serialize_record(fields = {}) ⇒ Object
- #to_hash(include: [], fields: {}, document_meta: nil) ⇒ Object
Methods included from ActiveStorageSupport
#active_storage_attachment?, #append_only_enabled?, #attach_active_storage_files, #extract_active_storage_params_from_hash, #filter_active_storage_from_includes, #filter_polymorphic_from_includes, #find_blob_by_signed_id, #find_relationship_definition, #process_active_storage_attachment, #purge_on_nil_enabled?, #serialize_active_storage_relationship, #serialize_blob_identifier
Constructor Details
#initialize(record, definition: nil, base_definition: nil) ⇒ Serializer
Returns a new instance of Serializer.
14 15 16 17 18 19 |
# File 'lib/json_api/serialization/serializer.rb', line 14 def initialize(record, definition: nil, base_definition: nil) @record = record @definition = definition || ResourceLoader.find_for_model(record.class) @base_definition = base_definition @sti_subclass = nil # Cache for sti_subclass? check end |
Class Method Details
.jsonapi_object ⇒ Object
Class method for generating the JSON:API object
8 9 10 11 12 |
# File 'lib/json_api/serialization/serializer.rb', line 8 def self.jsonapi_object obj = { version: JSONAPI.configuration.jsonapi_version } obj[:meta] = JSONAPI.configuration. if JSONAPI.configuration. obj end |
Instance Method Details
#serialize_record(fields = {}) ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/json_api/serialization/serializer.rb', line 30 def serialize_record(fields = {}) { type: record_type, id: record_id, attributes: serialize_attributes(fields), relationships: serialize_relationships, links: serialize_links, meta: }.compact end |
#to_hash(include: [], fields: {}, document_meta: nil) ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/json_api/serialization/serializer.rb', line 21 def to_hash(include: [], fields: {}, document_meta: nil) { jsonapi: jsonapi_object, data: serialize_record(fields), included: serialize_included(include, fields), meta: }.compact end |