class PlainModel::AssociationBuilder

Attributes

model_class[R]
options[R]

Public Class Methods

new(model_class, options = {}) click to toggle source
# File lib/plain_model/association_builder.rb, line 7
def initialize(model_class, options = {})
  @model_class = model_class
  @options = options
end

Public Instance Methods

load_records(name, records, context: nil, includes: []) click to toggle source
# File lib/plain_model/association_builder.rb, line 12
def load_records(name, records, context: nil, includes: [])
  apply = options.fetch(:apply) { :"_records_for_#{name}" }
  args = [records, context: context, includes: includes, association: name]
  if apply.is_a?(Symbol)
    model_class.public_send(apply, *args)
  else
    model_class.instance_exec(*args, &apply)
  end
end