Module: Operandi::CallbackDsl
- Included in:
- Base
- Defined in:
- lib/operandi/callbacks.rb
Overview
Class methods for registering callbacks. Extend this module in your service class to get callback DSL methods.
Instance Method Summary collapse
-
#after_service_run(method_name = nil) {|service| ... } ⇒ void
Registers a callback to run after the service completes (regardless of success/failure).
-
#after_step_run(method_name = nil) {|service, step_name| ... } ⇒ void
Registers a callback to run after each step executes.
-
#all_callbacks_for(event) ⇒ Array<Symbol, Proc>
Get all callbacks for an event including inherited ones.
-
#around_service_run(method_name = nil) {|service| ... } ⇒ void
Registers an around callback that wraps the entire service execution.
-
#around_step_run(method_name = nil) {|service, step_name| ... } ⇒ void
Registers an around callback that wraps each step execution.
-
#before_service_run(method_name = nil) {|service| ... } ⇒ void
Registers a callback to run before the service starts executing.
-
#before_step_run(method_name = nil) {|service, step_name| ... } ⇒ void
Registers a callback to run before each step executes.
-
#callbacks_for(event) ⇒ Array<Symbol, Proc>
Get callbacks defined in this class for a specific event.
-
#on_service_failure(method_name = nil) {|service| ... } ⇒ void
Registers a callback to run when the service completes with errors.
-
#on_service_success(method_name = nil) {|service| ... } ⇒ void
Registers a callback to run when the service completes successfully (without errors).
-
#on_step_crash(method_name = nil) {|service, step_name, exception| ... } ⇒ void
Registers a callback to run when a step raises an exception.
-
#on_step_failure(method_name = nil) {|service, step_name| ... } ⇒ void
Registers a callback to run when a step fails (adds errors).
-
#on_step_success(method_name = nil) {|service, step_name| ... } ⇒ void
Registers a callback to run when a step completes successfully (without adding errors).
Instance Method Details
#after_service_run(method_name = nil) {|service| ... } ⇒ void
This method returns an undefined value.
Registers a callback to run after the service completes (regardless of success/failure).
250 251 252 |
# File 'lib/operandi/callbacks.rb', line 250 def after_service_run(method_name = nil, &) register_callback(:after_service_run, method_name, &) end |
#after_step_run(method_name = nil) {|service, step_name| ... } ⇒ void
This method returns an undefined value.
Registers a callback to run after each step executes.
139 140 141 |
# File 'lib/operandi/callbacks.rb', line 139 def after_step_run(method_name = nil, &) register_callback(:after_step_run, method_name, &) end |
#all_callbacks_for(event) ⇒ Array<Symbol, Proc>
Get all callbacks for an event including inherited ones.
322 323 324 325 326 327 328 329 330 |
# File 'lib/operandi/callbacks.rb', line 322 def all_callbacks_for(event) if superclass.respond_to?(:all_callbacks_for) inherited = superclass.all_callbacks_for(event) else inherited = [] end inherited + callbacks_for(event) end |
#around_service_run(method_name = nil) {|service| ... } ⇒ void
This method returns an undefined value.
Registers an around callback that wraps the entire service execution. The callback must yield to execute the service.
271 272 273 |
# File 'lib/operandi/callbacks.rb', line 271 def around_service_run(method_name = nil, &) register_callback(:around_service_run, method_name, &) end |
#around_step_run(method_name = nil) {|service, step_name| ... } ⇒ void
This method returns an undefined value.
Registers an around callback that wraps each step execution. The callback must yield to execute the step.
161 162 163 |
# File 'lib/operandi/callbacks.rb', line 161 def around_step_run(method_name = nil, &) register_callback(:around_step_run, method_name, &) end |
#before_service_run(method_name = nil) {|service| ... } ⇒ void
This method returns an undefined value.
Registers a callback to run before the service starts executing.
233 234 235 |
# File 'lib/operandi/callbacks.rb', line 233 def before_service_run(method_name = nil, &) register_callback(:before_service_run, method_name, &) end |
#before_step_run(method_name = nil) {|service, step_name| ... } ⇒ void
This method returns an undefined value.
Registers a callback to run before each step executes.
121 122 123 |
# File 'lib/operandi/callbacks.rb', line 121 def before_step_run(method_name = nil, &) register_callback(:before_step_run, method_name, &) end |
#callbacks_for(event) ⇒ Array<Symbol, Proc>
Get callbacks defined in this class for a specific event.
313 314 315 316 |
# File 'lib/operandi/callbacks.rb', line 313 def callbacks_for(event) @callbacks ||= {} @callbacks[event] ||= [] end |
#on_service_failure(method_name = nil) {|service| ... } ⇒ void
This method returns an undefined value.
Registers a callback to run when the service completes with errors.
305 306 307 |
# File 'lib/operandi/callbacks.rb', line 305 def on_service_failure(method_name = nil, &) register_callback(:on_service_failure, method_name, &) end |
#on_service_success(method_name = nil) {|service| ... } ⇒ void
This method returns an undefined value.
Registers a callback to run when the service completes successfully (without errors).
288 289 290 |
# File 'lib/operandi/callbacks.rb', line 288 def on_service_success(method_name = nil, &) register_callback(:on_service_success, method_name, &) end |
#on_step_crash(method_name = nil) {|service, step_name, exception| ... } ⇒ void
This method returns an undefined value.
Registers a callback to run when a step raises an exception.
216 217 218 |
# File 'lib/operandi/callbacks.rb', line 216 def on_step_crash(method_name = nil, &) register_callback(:on_step_crash, method_name, &) end |
#on_step_failure(method_name = nil) {|service, step_name| ... } ⇒ void
This method returns an undefined value.
Registers a callback to run when a step fails (adds errors).
197 198 199 |
# File 'lib/operandi/callbacks.rb', line 197 def on_step_failure(method_name = nil, &) register_callback(:on_step_failure, method_name, &) end |
#on_step_success(method_name = nil) {|service, step_name| ... } ⇒ void
This method returns an undefined value.
Registers a callback to run when a step completes successfully (without adding errors).
179 180 181 |
# File 'lib/operandi/callbacks.rb', line 179 def on_step_success(method_name = nil, &) register_callback(:on_step_success, method_name, &) end |