Sha256: 5677a6aadaeb4af60f1f97565d95aca21569187ca1fd8a9a7b7649945760ef94

Contents?: true

Size: 672 Bytes

Versions: 1

Compression:

Stored size: 672 Bytes

Contents

module ROM
  module SQL
    module Associations
      # Core SQL association API
      #
      # @api private
      module Core
        # @api private
        def preload(target, loaded)
          source_key, target_key = join_keys.flatten(1)

          target_pks = loaded.pluck(source_key.key)
          target_pks.uniq!

          target.where(target_key => target_pks)
        end

        # @api private
        def wrapped
          new_target = view ? target.send(view) : target
          to_wrap = self.class.allocate
          to_wrap.send(:initialize, definition, options.merge(target: new_target))
          to_wrap.wrap
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rom-sql-3.1.0 lib/rom/sql/associations/core.rb