Class: Browserctl::WorkflowDefinition

Inherits:
Object
  • Object
show all
Defined in:
lib/browserctl/workflow.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ WorkflowDefinition

Returns a new instance of WorkflowDefinition.



94
95
96
97
98
99
# File 'lib/browserctl/workflow.rb', line 94

def initialize(name)
  @name = name
  @description = nil
  @param_defs  = {}
  @steps       = []
end

Instance Attribute Details

#descriptionObject (readonly)

Returns the value of attribute description.



92
93
94
# File 'lib/browserctl/workflow.rb', line 92

def description
  @description
end

#nameObject (readonly)

Returns the value of attribute name.



92
93
94
# File 'lib/browserctl/workflow.rb', line 92

def name
  @name
end

#param_defsObject (readonly)

Returns the value of attribute param_defs.



92
93
94
# File 'lib/browserctl/workflow.rb', line 92

def param_defs
  @param_defs
end

#stepsObject (readonly)

Returns the value of attribute steps.



92
93
94
# File 'lib/browserctl/workflow.rb', line 92

def steps
  @steps
end

Instance Method Details

#call(params, client) ⇒ Object



113
114
115
116
# File 'lib/browserctl/workflow.rb', line 113

def call(params, client)
  ctx = WorkflowContext.new(resolve_params(params), client)
  execute_steps(ctx)
end

#desc(text) ⇒ Object



101
102
103
# File 'lib/browserctl/workflow.rb', line 101

def desc(text)
  @description = text
end

#param(name, required: false, secret: false, default: nil) ⇒ Object



105
106
107
# File 'lib/browserctl/workflow.rb', line 105

def param(name, required: false, secret: false, default: nil)
  @param_defs[name] = ParamDef.new(name: name, required: required, secret: secret, default: default)
end

#step(label, &block) ⇒ Object



109
110
111
# File 'lib/browserctl/workflow.rb', line 109

def step(label, &block)
  @steps << [label, block]
end