class ViewModel::TestHelpers::ARVMBuilder::Spec

Public Class Methods

new(schema:, model:, viewmodel:) click to toggle source
Calls superclass method
# File lib/view_model/test_helpers/arvm_builder.rb, line 11
def initialize(schema:, model:, viewmodel:)
  super(schema, model, viewmodel)
end

Public Instance Methods

merge(schema: nil, model: nil, viewmodel: nil) click to toggle source
# File lib/view_model/test_helpers/arvm_builder.rb, line 15
def merge(schema: nil, model: nil, viewmodel: nil)
  this_schema    = self.schema
  this_model     = self.model
  this_viewmodel = self.viewmodel

  Spec.new(
    schema: ->(t) do
      this_schema.(t)
      schema&.(t)
    end,
    model: ->(m) do
      m.class_eval(&this_model)
      model.try { |b| m.class_eval(&b) }
    end,
    viewmodel: ->(v) do
      v.class_eval(&this_viewmodel)
      viewmodel.try { |b| v.class_eval(&b) }
    end)
end