Class: Roast::SystemCogs::Repeat::Output
- Inherits:
-
Cog::Output
- Object
- Cog::Output
- Roast::SystemCogs::Repeat::Output
- Defined in:
- lib/roast/system_cogs/repeat.rb
Overview
Output from running the repeat cog
Contains results from all iterations that ran. Provides access to the final value (output from the last iteration) as well as individual iteration results.
See Also
Roast::CogInputContext#collect- retrieves all iteration outputs as an array (viaresults)Roast::CogInputContext#reduce- reduces iteration outputs to a single value (viaresults)
Instance Method Summary collapse
-
#first ⇒ Object
Get the output from the first iteration.
-
#initialize(execution_managers) ⇒ Output
constructor
Initialize the output with results for all iterations.
-
#iteration(index) ⇒ Object
Get the output from a specific iteration.
-
#last ⇒ Object
Get the output from the last iteration.
-
#results ⇒ Object
Get all iteration results as a
Roast::SystemCogs::Map::Outputobject. -
#value ⇒ Object
Get the final output value from the last iteration.
Constructor Details
Instance Method Details
#first ⇒ Object
Get the output from the first iteration
Convenience method equivalent to iteration(0).
See Also
iterationlast
: () -> Call::Output
158 159 160 |
# File 'lib/roast/system_cogs/repeat.rb', line 158 def first iteration(0) end |
#iteration(index) ⇒ Object
Get the output from a specific iteration
Returns a Roast::SystemCogs::Call::Output object for the iteration at the given index.
Supports negative indices to count from the end (e.g., -1 for the last iteration).
Usage
# Access a specific iteration
result = from(repeat!(:process).iteration(2))
# Access with negative index
result = from(repeat!(:process).iteration(-1))
See Also
firstlastvalueRoast::CogInputContext#from
: (Integer) -> Call::Output
145 146 147 |
# File 'lib/roast/system_cogs/repeat.rb', line 145 def iteration(index) Call::Output.new(@execution_managers.fetch(index)) end |
#last ⇒ Object
Get the output from the last iteration
Convenience method equivalent to iteration(-1). Returns the same value as
calling value, but wrapped in a Roast::SystemCogs::Call::Output for use with from.
See Also
iterationfirstvalue
: () -> Call::Output
173 174 175 |
# File 'lib/roast/system_cogs/repeat.rb', line 173 def last iteration(-1) end |
#results ⇒ Object
Get all iteration results as a Roast::SystemCogs::Map::Output object
Returns a Roast::SystemCogs::Map::Output containing all iterations, which can be used with
collect or reduce to process all iteration outputs.
Usage
# Collect all iteration outputs
all_results = collect(repeat!(:process).results)
# Reduce all iteration outputs
sum = reduce(repeat!(:process).results, 0) { |acc, output| acc + output }
See Also
valueRoast::CogInputContext#collectRoast::CogInputContext#reduceRoast::SystemCogs::Map::Output
: () -> Map::Output
198 199 200 |
# File 'lib/roast/system_cogs/repeat.rb', line 198 def results Map::Output.new(@execution_managers) end |
#value ⇒ Object
Get the final output value from the last iteration
This is the output from the last iteration before break! was called.
Returns nil if no iterations ran.
Usage
# Get the final result directly
final = repeat!(:process)
See Also
lastresults
: () -> untyped
120 121 122 |
# File 'lib/roast/system_cogs/repeat.rb', line 120 def value @execution_managers.last&.final_output end |