Module: SimpleCrud::ActionLambdas
- Included in:
- SimpleCrudController
- Defined in:
- lib/simple_crud/action_lambdas.rb
Overview
Builds the lambda installed as each action declared with simple_crud_for.
Instance Method Summary collapse
- #crud_lambda_for_create(klass, parameters = {}, &block) ⇒ Object
- #crud_lambda_for_destroy(klass, parameters = {}, &block) ⇒ Object
-
#crud_lambda_for_edit(klass, parameters = {}, &block) ⇒ Object
The find-instead-of-build twin of :new.
- #crud_lambda_for_index(klass, parameters = {}, &block) ⇒ Object
- #crud_lambda_for_new(klass, parameters = {}, &block) ⇒ Object
- #crud_lambda_for_show(klass, parameters = {}, &block) ⇒ Object
- #crud_lambda_for_update(klass, parameters = {}, &block) ⇒ Object
Instance Method Details
#crud_lambda_for_create(klass, parameters = {}, &block) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/simple_crud/action_lambdas.rb', line 45 def crud_lambda_for_create(klass, parameters = {}, &block) lambda do authenticate_user! if parameters[:authenticate] permitted_params = send("#{self.class.simple_crud_controller_model.to_s.underscore}_params") record = SimpleCrudController.build_record(self, klass, parameters) record.assign_attributes(permitted_params) SimpleCrudController.(self, record, parameters) persist = ->(bang:) { bang ? record.save! : record.save } = { status: :created, failure_template: :new } SimpleCrudController.save_and_render(self, record, parameters, , persist, &block) end end |
#crud_lambda_for_destroy(klass, parameters = {}, &block) ⇒ Object
70 71 72 73 74 75 76 77 78 79 |
# File 'lib/simple_crud/action_lambdas.rb', line 70 def crud_lambda_for_destroy(klass, parameters = {}, &block) lambda do authenticate_user! if parameters[:authenticate] requested = SimpleCrudController.find_record(klass, self, parameters) SimpleCrudController.(self, requested, parameters) = { status: :ok, failure_template: :show, redirect: parameters[:redirect] || klass } persist = ->(bang:) { bang ? requested.destroy! : requested.destroy } SimpleCrudController.persist_and_render(self, requested, parameters, , persist, &block) end end |
#crud_lambda_for_edit(klass, parameters = {}, &block) ⇒ Object
The find-instead-of-build twin of :new.
27 28 29 30 31 32 33 34 |
# File 'lib/simple_crud/action_lambdas.rb', line 27 def crud_lambda_for_edit(klass, parameters = {}, &block) lambda do authenticate_user! if parameters[:authenticate] requested = SimpleCrudController.find_record(klass, self, parameters) SimpleCrudController.(self, requested, parameters) SimpleCrudController.render_edit(self, requested, parameters, &block) end end |
#crud_lambda_for_index(klass, parameters = {}, &block) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/simple_crud/action_lambdas.rb', line 36 def crud_lambda_for_index(klass, parameters = {}, &block) lambda do authenticate_user! if parameters[:authenticate] SimpleCrudController.(self, klass, parameters) = {}.merge(each_serializer: parameters[:serializer]).compact SimpleCrudController.render_index(self, klass, , parameters, &block) end end |
#crud_lambda_for_new(klass, parameters = {}, &block) ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/simple_crud/action_lambdas.rb', line 17 def crud_lambda_for_new(klass, parameters = {}, &block) lambda do authenticate_user! if parameters[:authenticate] record = SimpleCrudController.build_record(self, klass, parameters) SimpleCrudController.(self, record, parameters) SimpleCrudController.render_new(self, record, parameters, &block) end end |
#crud_lambda_for_show(klass, parameters = {}, &block) ⇒ Object
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/simple_crud/action_lambdas.rb', line 6 def crud_lambda_for_show(klass, parameters = {}, &block) lambda do authenticate_user! if parameters[:authenticate] requested = SimpleCrudController.find_record(klass, self, parameters) = {}.merge(serializer: parameters[:serializer]).compact SimpleCrudController.(self, requested, parameters) SimpleCrudController.render_show(self, requested, , parameters, &block) end end |
#crud_lambda_for_update(klass, parameters = {}, &block) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/simple_crud/action_lambdas.rb', line 58 def crud_lambda_for_update(klass, parameters = {}, &block) lambda do authenticate_user! if parameters[:authenticate] requested = SimpleCrudController.find_record(klass, self, parameters) SimpleCrudController.(self, requested, parameters) permitted_params = send("#{self.class.simple_crud_controller_model.to_s.underscore}_params") persist = ->(bang:) { bang ? requested.update!(permitted_params) : requested.update(permitted_params) } = { status: :ok, failure_template: :edit } SimpleCrudController.save_and_render(self, requested, parameters, , persist, &block) end end |