Module: JSONAPI::RelationshipHelpers

Defined in:
lib/json_api/support/relationship_helpers.rb

Class Method Summary collapse

Class Method Details

.extract_id_from_identifier(identifier) ⇒ Object



34
35
36
# File 'lib/json_api/support/relationship_helpers.rb', line 34

def extract_id_from_identifier(identifier)
  ResourceIdentifier.extract_id(identifier)
end

.extract_lid_from_identifier(identifier) ⇒ Object



38
39
40
# File 'lib/json_api/support/relationship_helpers.rb', line 38

def extract_lid_from_identifier(identifier)
  ResourceIdentifier.extract_lid(identifier)
end

.extract_type_from_identifier(identifier) ⇒ Object



42
43
44
# File 'lib/json_api/support/relationship_helpers.rb', line 42

def extract_type_from_identifier(identifier)
  ResourceIdentifier.extract_type(identifier)
end

.find_relationship_definition(definition, relationship_name) ⇒ Object



67
68
69
# File 'lib/json_api/support/relationship_helpers.rb', line 67

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

Returns:

  • (Boolean)


55
56
57
# File 'lib/json_api/support/relationship_helpers.rb', line 55

def polymorphic_association?(definition, relationship_name)
  ResourceIdentifier.polymorphic_association?(definition, relationship_name)
end

.polymorphic_association_for_association?(association, definition) ⇒ Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/json_api/support/relationship_helpers.rb', line 63

def polymorphic_association_for_association?(association, definition)
  ResourceIdentifier.polymorphic_association_for_association?(association, definition)
end


46
47
48
49
50
51
52
53
# File 'lib/json_api/support/relationship_helpers.rb', line 46

def resolve_and_find_related_resource(identifier, association:, resource_class:, relationship_name:)
  ResourceIdentifier.resolve_and_find_related_record(
    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) ⇒ Object

Delegate to ResourceIdentifier rubocop:disable Lint/UnusedMethodArgument



22
23
24
25
26
27
28
29
30
31
32
# 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
)
  # rubocop:enable Lint/UnusedMethodArgument
  ResourceIdentifier.serialize_identifier(
    record,
    association:,
    definition: resource_class,
    use_instance_class:,
  )
end

.sti_subclass?(instance_class, association_class) ⇒ Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/json_api/support/relationship_helpers.rb', line 59

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