Class: ActiveHarness::Pipeline::Step
- Inherits:
-
Object
- Object
- ActiveHarness::Pipeline::Step
- Defined in:
- lib/active_harness/pipeline/step.rb
Instance Attribute Summary collapse
-
#agent_class ⇒ Object
readonly
Returns the value of attribute agent_class.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
-
#initialize(name, agent_class = nil, &block) ⇒ Step
constructor
A new instance of Step.
-
#stop_if(lam = nil) ⇒ Object
DSL (inside block): stop_if ->(result) { … } Getter (external): step.stop_if → lambda or nil.
-
#transform? ⇒ Boolean
Transform steps update payload to result.output after execution.
-
#tribunal? ⇒ Boolean
True if agent_class is a Tribunal subclass — tribunal steps do not update payload.
-
#use(klass) ⇒ Object
DSL: use TranslationAgent.
Constructor Details
#initialize(name, agent_class = nil, &block) ⇒ Step
Returns a new instance of Step.
6 7 8 9 10 11 |
# File 'lib/active_harness/pipeline/step.rb', line 6 def initialize(name, agent_class = nil, &block) @name = name @agent_class = agent_class @stop_if = nil instance_eval(&block) if block_given? end |
Instance Attribute Details
#agent_class ⇒ Object (readonly)
Returns the value of attribute agent_class.
4 5 6 |
# File 'lib/active_harness/pipeline/step.rb', line 4 def agent_class @agent_class end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
4 5 6 |
# File 'lib/active_harness/pipeline/step.rb', line 4 def name @name end |
Instance Method Details
#stop_if(lam = nil) ⇒ Object
DSL (inside block): stop_if ->(result) { … } Getter (external): step.stop_if → lambda or nil
20 21 22 |
# File 'lib/active_harness/pipeline/step.rb', line 20 def stop_if(lam = nil) lam ? @stop_if = lam : @stop_if end |
#transform? ⇒ Boolean
Transform steps update payload to result.output after execution. Guard steps (stop_if present) and tribunal steps leave payload unchanged.
31 32 33 |
# File 'lib/active_harness/pipeline/step.rb', line 31 def transform? !tribunal? && @stop_if.nil? end |
#tribunal? ⇒ Boolean
True if agent_class is a Tribunal subclass — tribunal steps do not update payload.
25 26 27 |
# File 'lib/active_harness/pipeline/step.rb', line 25 def tribunal? @agent_class.is_a?(Class) && @agent_class <= ActiveHarness::Tribunal end |
#use(klass) ⇒ Object
DSL: use TranslationAgent
14 15 16 |
# File 'lib/active_harness/pipeline/step.rb', line 14 def use(klass) @agent_class = klass end |