Module: JSONAPI::Resources::RelationshipsDsl::RelationshipHelperMethods

Defined in:
lib/json_api/resources/concerns/relationships_dsl.rb

Instance Method Summary collapse

Instance Method Details

#detect_polymorphic(name, options) ⇒ Object



49
50
51
52
53
54
55
56
57
# File 'lib/json_api/resources/concerns/relationships_dsl.rb', line 49

def detect_polymorphic(name, options)
  return if options.key?(:polymorphic)

  model_klass = reflection_model_class
  return unless model_klass.respond_to?(:reflect_on_association)

  reflection = model_klass.reflect_on_association(name)
  options[:polymorphic] = reflection&.polymorphic?
end

#should_inherit_relationships?(declared_relationships) ⇒ Boolean

Returns:

  • (Boolean)


59
60
61
62
63
# File 'lib/json_api/resources/concerns/relationships_dsl.rb', line 59

def should_inherit_relationships?(declared_relationships)
  !declared_relationships &&
    superclass != JSONAPI::Resource &&
    superclass.respond_to?(:relationship_definitions)
end

#validate_append_only_options!(options) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/json_api/resources/concerns/relationships_dsl.rb', line 41

def validate_append_only_options!(options)
  if options[:append_only] && options[:purge_on_nil] == true
    raise ArgumentError, "Cannot use append_only: true with purge_on_nil: true"
  end

  options[:purge_on_nil] = false if options[:append_only] && !options.key?(:purge_on_nil)
end