class ActivePreview::BatchBuilder
Attributes
klass[R]
params_set[R]
parent[R]
saved_models[R]
Public Class Methods
build(**args)
click to toggle source
# File lib/active_preview/batch_builder.rb, line 3 def self.build(**args) new(**args).build end
new(klass:, saved_models:, params: nil, parent: nil)
click to toggle source
# File lib/active_preview/batch_builder.rb, line 7 def initialize(klass:, saved_models:, params: nil, parent: nil) @klass = klass @saved_models = saved_models @params_set = params @parent = parent end
Public Instance Methods
build()
click to toggle source
# File lib/active_preview/batch_builder.rb, line 14 def build objects_with_new_attrs.map do |obj, attrs| obj ||= klass.new attrs ||= {} Builder.build(model: obj, params: attrs, parent: parent) end end
Private Instance Methods
objects_with_new_attrs()
click to toggle source
# File lib/active_preview/batch_builder.rb, line 26 def objects_with_new_attrs return saved_models unless params_set if saved_models.size > params_set.size saved_models.zip(params_set) else params_set.zip(saved_models).map(&:reverse!) end end