Class: Clowne::Adapters::ActiveRecord::Resolvers::Association

Inherits:
Object
  • Object
show all
Defined in:
lib/clowne/adapters/active_record/resolvers/association.rb

Class Method Summary collapse

Class Method Details

.call(source, record, declaration, adapter:, params:, **_options) ⇒ Object

rubocop: disable Metrics/ParameterLists



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/clowne/adapters/active_record/resolvers/association.rb', line 12

def call(source, record, declaration, adapter:, params:, **_options)
  reflection = source.class.reflections[declaration.name.to_s]

  if reflection.nil?
    raise UnknownAssociation,
          "Association #{declaration.name} couldn't be found for #{source.class}"
  end

  cloner_class = Associations.cloner_for(reflection)

  cloner_class.new(reflection, source, declaration, adapter, params).call(record)

  record
end