class Trailblazer::Macro::Model::Builder

Public Instance Methods

call(options, params) click to toggle source
# File lib/trailblazer/macro/model.rb, line 30
def call(options, params)
  action        = options[:"model.action"] || :new
  model_class   = options[:"model.class"]
  find_by_key   = options[:"model.find_by_key"] || :id
  action        = :pass_through unless %i[new find_by].include?(action)

  send("#{action}!", model_class, params, options[:"model.action"], find_by_key)
end
find_by!(model_class, params, action, find_by_key, *) click to toggle source

Doesn't throw an exception and will return false to divert to Left.

# File lib/trailblazer/macro/model.rb, line 44
def find_by!(model_class, params, action, find_by_key, *)
  model_class.find_by(find_by_key.to_sym => params[find_by_key])
end
new!(model_class, params, *) click to toggle source
# File lib/trailblazer/macro/model.rb, line 39
def new!(model_class, params, *)
  model_class.new
end
pass_through!(model_class, params, action, find_by_key, *) click to toggle source

Call any method on the model class and pass find_by_key, for example find(params).

# File lib/trailblazer/macro/model.rb, line 49
def pass_through!(model_class, params, action, find_by_key, *)
  model_class.send(action, params[find_by_key])
end