Class: JSONAPI::Serializer
Constant Summary
collapse
- JSONAPI_VERSION =
"1.1"
Class Method Summary
collapse
Instance Method Summary
collapse
#record_meta
#serialize_included
#serialize_links
#serialize_relationships
#serialize_attributes
#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?, #resolve_model_class_for_attachment, #serialize_active_storage_relationship, #serialize_blob_identifier
Constructor Details
#initialize(record, definition: nil, base_definition: nil) ⇒ Serializer
Returns a new instance of Serializer.
36
37
38
39
40
41
|
# File 'lib/json_api/serialization/serializer.rb', line 36
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
end
|
Class Method Details
.build_jsonapi_object ⇒ Object
26
27
28
29
30
|
# File 'lib/json_api/serialization/serializer.rb', line 26
def self.build_jsonapi_object
obj = { version: JSONAPI_VERSION }
obj[:meta] = JSONAPI.configuration.jsonapi_meta if JSONAPI.configuration.jsonapi_meta
obj
end
|
.jsonapi_object ⇒ Object
22
23
24
|
# File 'lib/json_api/serialization/serializer.rb', line 22
def self.jsonapi_object
@jsonapi_object ||= build_jsonapi_object.freeze
end
|
.reset_jsonapi_object! ⇒ Object
32
33
34
|
# File 'lib/json_api/serialization/serializer.rb', line 32
def self.reset_jsonapi_object!
@jsonapi_object = nil
end
|
Instance Method Details
#serialize_record(fields = {}) ⇒ Object
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/json_api/serialization/serializer.rb', line 52
def serialize_record(fields = {})
{
type: record_type,
id: record_id,
attributes: serialize_attributes(fields),
relationships: serialize_relationships,
links: serialize_links,
meta: record_meta,
}.compact
end
|
#to_hash(include: [], fields: {}, document_meta: nil) ⇒ Object
43
44
45
46
47
48
49
50
|
# File 'lib/json_api/serialization/serializer.rb', line 43
def to_hash(include: [], fields: {}, document_meta: nil)
{
jsonapi: jsonapi_object,
data: serialize_record(fields),
included: serialize_included(include, fields),
meta: document_meta,
}.compact
end
|