Module: LightOperations::Flow::ClassMethods
- Defined in:
- lib/light_operations/flow.rb
Instance Method Summary collapse
-
#operation(operation_name, namespace: Kernel, actions: [], default_view: nil, view_prefix: 'render_', default_fail_view: nil, fail_view_prefix: 'render_fail_') ⇒ Object
rubocop:disable all.
Instance Method Details
#operation(operation_name, namespace: Kernel, actions: [], default_view: nil, view_prefix: 'render_', default_fail_view: nil, fail_view_prefix: 'render_fail_') ⇒ Object
rubocop:disable all
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/light_operations/flow.rb', line 10 def operation(operation_name, namespace: Kernel, actions: [], default_view: nil, view_prefix: 'render_', default_fail_view: nil, fail_view_prefix: 'render_fail_') # rubocop:disable all actions.each do |action_name| operation_method = "#{action_name}_op" define_method(action_name.to_s) do send(operation_method).run((operation_opts || {}).merge(params: params)) end define_method(operation_method) do success_view = default_view || "#{view_prefix}#{action_name}".to_sym fail_view = default_fail_view || "#{fail_view_prefix}#{action_name}".to_sym const = operation_name.to_s.titleize.delete(' ') action = action_name.to_s.titleize.delete(' ') namespace.const_get(const).const_get(action) .new(operation_dependencies) .bind_with(self) .on_success(success_view) .on_fail(fail_view) end end end |