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



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

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

.extract_sort_direction(sort_field) ⇒ Object



25
26
27
# File 'lib/json_api/support/relationship_helpers.rb', line 25

def extract_sort_direction(sort_field)
  SortParsing.extract_sort_direction(sort_field)
end

.extract_sort_field_name(sort_field) ⇒ Object

Delegate to SortParsing



21
22
23
# File 'lib/json_api/support/relationship_helpers.rb', line 21

def extract_sort_field_name(sort_field)
  SortParsing.extract_sort_field_name(sort_field)
end

.extract_type_from_identifier(identifier) ⇒ Object



47
48
49
# File 'lib/json_api/support/relationship_helpers.rb', line 47

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

.find_relationship_definition(definition, relationship_name) ⇒ Object



72
73
74
# File 'lib/json_api/support/relationship_helpers.rb', line 72

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)


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

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

.polymorphic_association_for_association?(association, definition) ⇒ Boolean

Returns:

  • (Boolean)


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

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


51
52
53
54
55
56
57
58
# File 'lib/json_api/support/relationship_helpers.rb', line 51

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



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/json_api/support/relationship_helpers.rb', line 31

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)


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

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