Class: Clowne::Adapters::ActiveRecord::Associations::HasOne

Inherits:
Base
  • Object
show all
Defined in:
lib/clowne/adapters/active_record/associations/has_one.rb

Instance Method Summary collapse

Instance Method Details

#call(record) ⇒ Object

rubocop: disable Metrics/MethodLength



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/clowne/adapters/active_record/associations/has_one.rb', line 9

def call(record)
  child = association
  return record unless child

  unless declaration.scope.nil?
    warn(
      '[Clowne] Has one association does not support scopes ' \
      "(#{@association_name} for #{@source.class})"
    )
  end

  child_clone = clone_one(child)
  child_clone[:"#{reflection.foreign_key}"] = nil
  record.__send__(:"#{association_name}=", child_clone)

  record
end