Module: JSONAPI::RelationshipHelpers
- Defined in:
- lib/json_api/support/relationship_helpers.rb
Class Method Summary collapse
- .extract_id_from_identifier(identifier) ⇒ Object
- .extract_type_from_identifier(identifier) ⇒ Object
- .find_relationship_definition(definition, relationship_name) ⇒ Object
- .model_type_name(model_class) ⇒ Object
- .polymorphic_association?(definition, relationship_name) ⇒ Boolean
- .polymorphic_association_for_association?(association, definition) ⇒ Boolean
- .resolve_and_find_related_resource(identifier, association:, resource_class:, relationship_name:) ⇒ Object
- .resource_type_name(definition_class) ⇒ Object
-
.serialize_resource_identifier(record, association: nil, resource_class: nil, use_instance_class: false, base_resource_class: nil, namespace: nil) ⇒ Object
Delegate to ResourceIdentifier rubocop:disable Lint/UnusedMethodArgument.
- .sti_subclass?(instance_class, association_class) ⇒ Boolean
-
.type_to_class_name(type) ⇒ Object
Delegate to TypeConversion.
Class Method Details
.extract_id_from_identifier(identifier) ⇒ Object
36 37 38 |
# File 'lib/json_api/support/relationship_helpers.rb', line 36 def extract_id_from_identifier(identifier) ResourceIdentifier.extract_id(identifier) end |
.extract_type_from_identifier(identifier) ⇒ Object
40 41 42 |
# File 'lib/json_api/support/relationship_helpers.rb', line 40 def extract_type_from_identifier(identifier) ResourceIdentifier.extract_type(identifier) end |
.find_relationship_definition(definition, relationship_name) ⇒ Object
65 66 67 |
# File 'lib/json_api/support/relationship_helpers.rb', line 65 def find_relationship_definition(definition, relationship_name) definition.relationship_definitions.find { |r| r[:name].to_s == relationship_name.to_s } end |
.model_type_name(model_class) ⇒ Object
12 13 14 |
# File 'lib/json_api/support/relationship_helpers.rb', line 12 def model_type_name(model_class) TypeConversion.model_type_name(model_class) end |
.polymorphic_association?(definition, relationship_name) ⇒ Boolean
53 54 55 |
# File 'lib/json_api/support/relationship_helpers.rb', line 53 def polymorphic_association?(definition, relationship_name) ResourceIdentifier.polymorphic_association?(definition, relationship_name) end |
.polymorphic_association_for_association?(association, definition) ⇒ Boolean
61 62 63 |
# File 'lib/json_api/support/relationship_helpers.rb', line 61 def polymorphic_association_for_association?(association, definition) ResourceIdentifier.polymorphic_association_for_association?(association, definition) end |
.resolve_and_find_related_resource(identifier, association:, resource_class:, relationship_name:) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/json_api/support/relationship_helpers.rb', line 44 def (identifier, association:, resource_class:, relationship_name:) ResourceIdentifier.( identifier, association:, definition: resource_class, relationship_name:, ) end |
.resource_type_name(definition_class) ⇒ Object
16 17 18 |
# File 'lib/json_api/support/relationship_helpers.rb', line 16 def resource_type_name(definition_class) TypeConversion.resource_type_name(definition_class) end |
.serialize_resource_identifier(record, association: nil, resource_class: nil, use_instance_class: false, base_resource_class: nil, namespace: nil) ⇒ Object
Delegate to ResourceIdentifier rubocop:disable Lint/UnusedMethodArgument
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/json_api/support/relationship_helpers.rb', line 22 def serialize_resource_identifier( record, association: nil, resource_class: nil, use_instance_class: false, base_resource_class: nil, namespace: nil ) # rubocop:enable Lint/UnusedMethodArgument ResourceIdentifier.serialize_identifier( record, association:, definition: resource_class, use_instance_class:, namespace:, ) end |
.sti_subclass?(instance_class, association_class) ⇒ Boolean
57 58 59 |
# File 'lib/json_api/support/relationship_helpers.rb', line 57 def sti_subclass?(instance_class, association_class) ResourceIdentifier.sti_subclass?(instance_class, association_class) end |
.type_to_class_name(type) ⇒ Object
Delegate to TypeConversion
8 9 10 |
# File 'lib/json_api/support/relationship_helpers.rb', line 8 def type_to_class_name(type) TypeConversion.type_to_class_name(type) end |