Class: Trailblazer::Macro::Model::Builder
- Inherits:
-
Object
- Object
- Trailblazer::Macro::Model::Builder
- Defined in:
- lib/trailblazer/macro/model.rb
Instance Method Summary collapse
- #call(ctx, params) ⇒ Object
-
#find_by!(model_class, params, action, find_by_key) ⇒ Object
Doesn’t throw an exception and will return false to divert to Left.
- #new!(model_class, params) ⇒ Object
-
#pass_through!(model_class, params, action, find_by_key) ⇒ Object
Call any method on the model class and pass find_by_key, for example find(params).
Instance Method Details
#call(ctx, params) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/trailblazer/macro/model.rb', line 34 def call(ctx, params) action = ctx[:"model.action"] model_class = ctx[:"model.class"] find_by_key = ctx[:"model.find_by_key"] action = :pass_through unless %i[new find_by].include?(action) send("#{action}!", model_class, params, ctx[:"model.action"], find_by_key) end |
#find_by!(model_class, params, action, find_by_key) ⇒ Object
Doesn’t throw an exception and will return false to divert to Left.
48 49 50 |
# File 'lib/trailblazer/macro/model.rb', line 48 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) ⇒ Object
43 44 45 |
# File 'lib/trailblazer/macro/model.rb', line 43 def new!(model_class, params, *) model_class.new end |
#pass_through!(model_class, params, action, find_by_key) ⇒ Object
Call any method on the model class and pass find_by_key, for example find(params).
53 54 55 |
# File 'lib/trailblazer/macro/model.rb', line 53 def pass_through!(model_class, params, action, find_by_key, *) model_class.send(action, params[find_by_key]) end |