Module: JSONAPI::ActiveStorageSupport
- Extended by:
- ActiveSupport::Concern
- Included in:
- Deserializer, ResourceActions, Serializer
- Defined in:
- lib/json_api/support/active_storage_support.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #active_storage_attachment?(association_name, model_class = nil) ⇒ Boolean
- #append_only_enabled?(attachment_name, resource_class) ⇒ Boolean
- #attach_active_storage_files(record, attachment_params, resource_class: nil) ⇒ Object
- #extract_active_storage_params_from_hash(params_hash, model_class) ⇒ Object
- #filter_active_storage_from_includes(includes_hash, current_model_class) ⇒ Object
- #filter_polymorphic_from_includes(includes_hash, current_model_class) ⇒ Object
- #find_blob_by_signed_id(signed_id) ⇒ Object
- #find_relationship_definition(attachment_name, resource_class) ⇒ Object
- #process_active_storage_attachment(attrs, association_name, id_or_ids, singular:) ⇒ Object
- #purge_on_nil_enabled?(attachment_name, resource_class) ⇒ Boolean
- #serialize_active_storage_relationship(attachment_name, record) ⇒ Object
- #serialize_blob_identifier(blob) ⇒ Object
Instance Method Details
#active_storage_attachment?(association_name, model_class = nil) ⇒ Boolean
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/json_api/support/active_storage_support.rb', line 19 def (association_name, model_class = nil) return self.class.(association_name, model_class) if model_class resolved_model_class = if respond_to?(:model_class, true) send(:model_class) elsif respond_to?(:resource_model_class, true) send(:resource_model_class) elsif respond_to?(:resource, true) && (res = send(:resource)) && res.respond_to?(:class) res.class else raise NotImplementedError, "Must implement resource_model_class or provide model_class parameter" end self.class.(association_name, resolved_model_class) end |
#append_only_enabled?(attachment_name, resource_class) ⇒ Boolean
47 48 49 |
# File 'lib/json_api/support/active_storage_support.rb', line 47 def append_only_enabled?(, resource_class) ActiveStorage::Deserialization.append_only_enabled?(, resource_class) end |
#attach_active_storage_files(record, attachment_params, resource_class: nil) ⇒ Object
39 40 41 |
# File 'lib/json_api/support/active_storage_support.rb', line 39 def attach_active_storage_files(record, , resource_class: nil) ActiveStorage::Deserialization.attach_files(record, , definition: resource_class) end |
#extract_active_storage_params_from_hash(params_hash, model_class) ⇒ Object
35 36 37 |
# File 'lib/json_api/support/active_storage_support.rb', line 35 def extract_active_storage_params_from_hash(params_hash, model_class) ActiveStorage::Deserialization.extract_params_from_hash(params_hash, model_class) end |
#filter_active_storage_from_includes(includes_hash, current_model_class) ⇒ Object
55 56 57 |
# File 'lib/json_api/support/active_storage_support.rb', line 55 def filter_active_storage_from_includes(includes_hash, current_model_class) ActiveStorage::Detection.filter_from_includes(includes_hash, current_model_class) end |
#filter_polymorphic_from_includes(includes_hash, current_model_class) ⇒ Object
59 60 61 |
# File 'lib/json_api/support/active_storage_support.rb', line 59 def filter_polymorphic_from_includes(includes_hash, current_model_class) ActiveStorage::Detection.filter_polymorphic_from_includes(includes_hash, current_model_class) end |
#find_blob_by_signed_id(signed_id) ⇒ Object
75 76 77 |
# File 'lib/json_api/support/active_storage_support.rb', line 75 def find_blob_by_signed_id(signed_id) ActiveStorage::Deserialization.find_blob_by_signed_id(signed_id) end |
#find_relationship_definition(attachment_name, resource_class) ⇒ Object
51 52 53 |
# File 'lib/json_api/support/active_storage_support.rb', line 51 def find_relationship_definition(, resource_class) ActiveStorage::Deserialization.find_relationship_definition(, resource_class) end |
#process_active_storage_attachment(attrs, association_name, id_or_ids, singular:) ⇒ Object
71 72 73 |
# File 'lib/json_api/support/active_storage_support.rb', line 71 def (attrs, association_name, id_or_ids, singular:) ActiveStorage::Deserialization.(attrs, association_name, id_or_ids, singular:) end |
#purge_on_nil_enabled?(attachment_name, resource_class) ⇒ Boolean
43 44 45 |
# File 'lib/json_api/support/active_storage_support.rb', line 43 def purge_on_nil_enabled?(, resource_class) ActiveStorage::Deserialization.purge_on_nil_enabled?(, resource_class) end |
#serialize_active_storage_relationship(attachment_name, record) ⇒ Object
63 64 65 |
# File 'lib/json_api/support/active_storage_support.rb', line 63 def serialize_active_storage_relationship(, record) ActiveStorage::Serialization.serialize_relationship(, record) end |
#serialize_blob_identifier(blob) ⇒ Object
67 68 69 |
# File 'lib/json_api/support/active_storage_support.rb', line 67 def serialize_blob_identifier(blob) ActiveStorage::Serialization.serialize_blob_identifier(blob) end |