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 (via `results`)
-
‘Roast::CogInputContext#reduce` - reduces iteration outputs to a single value (via `results`)
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::Output` object.
-
#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
-
‘iteration`
-
‘last`
: () -> 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 “‘ruby # Access a specific iteration result = from(repeat!(:process).iteration(2))
# Access with negative index result = from(repeat!(:process).iteration(-1)) “‘
#### See Also
-
‘first`
-
‘last`
-
‘value`
-
‘Roast::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
-
‘iteration`
-
‘first`
-
‘value`
: () -> 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 “‘ruby # 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
-
‘value`
-
‘Roast::CogInputContext#collect`
-
‘Roast::CogInputContext#reduce`
-
‘Roast::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 “‘ruby # Get the final result directly final = repeat!(:process) “`
#### See Also
-
‘last`
-
‘results`
: () -> untyped
120 121 122 |
# File 'lib/roast/system_cogs/repeat.rb', line 120 def value @execution_managers.last&.final_output end |