Module: Simple::Workflow::ModuleMethods
- Included in:
- Simple::Workflow
- Defined in:
- lib/simple/workflow.rb
Instance Method Summary collapse
- #invoke(workflow, *args, **kwargs) ⇒ Object
- #register_workflow(mod) ⇒ Object
- #reload_on_invocation! ⇒ Object
- #reload_on_invocation? ⇒ Boolean
Instance Method Details
#invoke(workflow, *args, **kwargs) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/simple/workflow.rb', line 50 def invoke(workflow, *args, **kwargs) # This call to Simple::Workflow.current_context raises a ContextMissingError # if the context is not set. _ = ::Simple::Workflow.current_context expect! workflow => [Module, String] workflow_module = lookup_workflow!(workflow) # We will reload workflow modules only once per invocation. if Simple::Workflow.reload_on_invocation? Simple::Workflow.current_context.reload!(workflow_module) end Simple::Service.invoke(workflow_module, :call, args: args, flags: kwargs.transform_keys(&:to_s)) end |
#register_workflow(mod) ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'lib/simple/workflow.rb', line 33 def register_workflow(mod) expect! mod => Module mod.extend ::Simple::Workflow::HelperMethods mod.include ::Simple::Workflow::InstanceHelperMethods mod.extend mod mod.include Simple::Service end |
#reload_on_invocation! ⇒ Object
46 47 48 |
# File 'lib/simple/workflow.rb', line 46 def reload_on_invocation! @reload_on_invocation = true end |
#reload_on_invocation? ⇒ Boolean
42 43 44 |
# File 'lib/simple/workflow.rb', line 42 def reload_on_invocation? !!@reload_on_invocation end |