Sha256: e2f4eeea261d3af6c82b2c1bc3a52f5b1fe75fdeae20aeea1579e5e5aa302a43
Contents?: true
Size: 621 Bytes
Versions: 7
Compression:
Stored size: 621 Bytes
Contents
# frozen_string_literal: true module ActiveRecordDataLoader module Dsl class PolymorphicAssociation attr_reader :model_class, :name, :models, :queries def initialize(model_class, name) @model_class = model_class @name = name @models = {} @queries = {} end def model(klass, weight: 1, eligible_set: nil) @models[klass] = weight.to_i @queries[klass] = eligible_set if eligible_set end def weighted_models gcd = models.values.reduce(:gcd) models.map { |m, w| [m] * (w / gcd) }.flatten end end end end
Version data entries
7 entries across 7 versions & 1 rubygems