Class: Browserctl::WorkflowDefinition
- Inherits:
-
Object
- Object
- Browserctl::WorkflowDefinition
- Defined in:
- lib/browserctl/workflow.rb
Instance Attribute Summary collapse
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#param_defs ⇒ Object
readonly
Returns the value of attribute param_defs.
-
#steps ⇒ Object
readonly
Returns the value of attribute steps.
Instance Method Summary collapse
- #call(params, client, replay_context: nil) ⇒ Object
- #compose(workflow_name) ⇒ Object
- #desc(text) ⇒ Object
-
#initialize(name) ⇒ WorkflowDefinition
constructor
A new instance of WorkflowDefinition.
- #param(name, required: false, secret: false, default: nil, secret_ref: nil) ⇒ Object
- #step(label, retry_count: 0, timeout: nil, &block) ⇒ Object
Constructor Details
#initialize(name) ⇒ WorkflowDefinition
Returns a new instance of WorkflowDefinition.
467 468 469 470 471 472 |
# File 'lib/browserctl/workflow.rb', line 467 def initialize(name) @name = name @description = nil @param_defs = {} @steps = [] end |
Instance Attribute Details
#description ⇒ Object (readonly)
Returns the value of attribute description.
465 466 467 |
# File 'lib/browserctl/workflow.rb', line 465 def description @description end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
465 466 467 |
# File 'lib/browserctl/workflow.rb', line 465 def name @name end |
#param_defs ⇒ Object (readonly)
Returns the value of attribute param_defs.
465 466 467 |
# File 'lib/browserctl/workflow.rb', line 465 def param_defs @param_defs end |
#steps ⇒ Object (readonly)
Returns the value of attribute steps.
465 466 467 |
# File 'lib/browserctl/workflow.rb', line 465 def steps @steps end |
Instance Method Details
#call(params, client, replay_context: nil) ⇒ Object
495 496 497 498 |
# File 'lib/browserctl/workflow.rb', line 495 def call(params, client, replay_context: nil) ctx = WorkflowContext.new(resolve_params(params), client, replay_context: replay_context) execute_steps(ctx) end |
#compose(workflow_name) ⇒ Object
488 489 490 491 492 493 |
# File 'lib/browserctl/workflow.rb', line 488 def compose(workflow_name) source = Browserctl.lookup_workflow(workflow_name.to_s) raise WorkflowError, "workflow '#{workflow_name}' not found for composition" unless source @steps.concat(source.steps) end |
#desc(text) ⇒ Object
474 475 476 |
# File 'lib/browserctl/workflow.rb', line 474 def desc(text) @description = text end |
#param(name, required: false, secret: false, default: nil, secret_ref: nil) ⇒ Object
478 479 480 481 482 |
# File 'lib/browserctl/workflow.rb', line 478 def param(name, required: false, secret: false, default: nil, secret_ref: nil) secret = true if secret_ref @param_defs[name] = ParamDef.new(name: name, required: required, secret: secret, default: default, secret_ref: secret_ref) end |
#step(label, retry_count: 0, timeout: nil, &block) ⇒ Object
484 485 486 |
# File 'lib/browserctl/workflow.rb', line 484 def step(label, retry_count: 0, timeout: nil, &block) @steps << StepDef.new(label: label, block: block, retry_count: retry_count, timeout: timeout) end |