Sha256: 2ec780963040d376d26a5931c946b0d4f855e5bd811564c563a1034334d9c0c0

Contents?: true

Size: 826 Bytes

Versions: 2

Compression:

Stored size: 826 Bytes

Contents

# frozen_string_literal: true

module Clowne
  module Adapters # :nodoc: all
    class ActiveRecord
      module Associations
        class HasOne < Base
          # rubocop: disable Metrics/MethodLength
          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
          # rubocop: enable Metrics/MethodLength
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
clowne-1.1.0 lib/clowne/adapters/active_record/associations/has_one.rb
clowne-1.0.0 lib/clowne/adapters/active_record/associations/has_one.rb