Class: Igniter::Extensions::Contracts::Incremental::Result
- Inherits:
-
Object
- Object
- Igniter::Extensions::Contracts::Incremental::Result
- Defined in:
- lib/igniter/extensions/contracts/incremental/result.rb
Instance Attribute Summary collapse
-
#backdated_nodes ⇒ Object
readonly
Returns the value of attribute backdated_nodes.
-
#changed_nodes ⇒ Object
readonly
Returns the value of attribute changed_nodes.
-
#changed_outputs ⇒ Object
readonly
Returns the value of attribute changed_outputs.
-
#execution_result ⇒ Object
readonly
Returns the value of attribute execution_result.
-
#recomputed_count ⇒ Object
readonly
Returns the value of attribute recomputed_count.
-
#skipped_nodes ⇒ Object
readonly
Returns the value of attribute skipped_nodes.
Instance Method Summary collapse
- #explain ⇒ Object (also: #to_s)
- #fully_memoized? ⇒ Boolean
-
#initialize(execution_result:, changed_nodes:, skipped_nodes:, backdated_nodes:, changed_outputs:, recomputed_count:) ⇒ Result
constructor
A new instance of Result.
- #output(name) ⇒ Object
- #outputs_changed? ⇒ Boolean
- #summary ⇒ Object
- #to_h ⇒ Object
Constructor Details
#initialize(execution_result:, changed_nodes:, skipped_nodes:, backdated_nodes:, changed_outputs:, recomputed_count:) ⇒ Result
Returns a new instance of Result.
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/igniter/extensions/contracts/incremental/result.rb', line 11 def initialize(execution_result:, changed_nodes:, skipped_nodes:, backdated_nodes:, changed_outputs:, recomputed_count:) @execution_result = execution_result @changed_nodes = changed_nodes.freeze @skipped_nodes = skipped_nodes.freeze @backdated_nodes = backdated_nodes.freeze @changed_outputs = changed_outputs.freeze @recomputed_count = recomputed_count freeze end |
Instance Attribute Details
#backdated_nodes ⇒ Object (readonly)
Returns the value of attribute backdated_nodes.
8 9 10 |
# File 'lib/igniter/extensions/contracts/incremental/result.rb', line 8 def backdated_nodes @backdated_nodes end |
#changed_nodes ⇒ Object (readonly)
Returns the value of attribute changed_nodes.
8 9 10 |
# File 'lib/igniter/extensions/contracts/incremental/result.rb', line 8 def changed_nodes @changed_nodes end |
#changed_outputs ⇒ Object (readonly)
Returns the value of attribute changed_outputs.
8 9 10 |
# File 'lib/igniter/extensions/contracts/incremental/result.rb', line 8 def changed_outputs @changed_outputs end |
#execution_result ⇒ Object (readonly)
Returns the value of attribute execution_result.
8 9 10 |
# File 'lib/igniter/extensions/contracts/incremental/result.rb', line 8 def execution_result @execution_result end |
#recomputed_count ⇒ Object (readonly)
Returns the value of attribute recomputed_count.
8 9 10 |
# File 'lib/igniter/extensions/contracts/incremental/result.rb', line 8 def recomputed_count @recomputed_count end |
#skipped_nodes ⇒ Object (readonly)
Returns the value of attribute skipped_nodes.
8 9 10 |
# File 'lib/igniter/extensions/contracts/incremental/result.rb', line 8 def skipped_nodes @skipped_nodes end |
Instance Method Details
#explain ⇒ Object Also known as: to_s
39 40 41 |
# File 'lib/igniter/extensions/contracts/incremental/result.rb', line 39 def explain Formatter.format(self) end |
#fully_memoized? ⇒ Boolean
26 27 28 |
# File 'lib/igniter/extensions/contracts/incremental/result.rb', line 26 def fully_memoized? recomputed_count.zero? end |
#output(name) ⇒ Object
45 46 47 |
# File 'lib/igniter/extensions/contracts/incremental/result.rb', line 45 def output(name) execution_result.output(name) end |
#outputs_changed? ⇒ Boolean
22 23 24 |
# File 'lib/igniter/extensions/contracts/incremental/result.rb', line 22 def outputs_changed? changed_outputs.any? end |
#summary ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/igniter/extensions/contracts/incremental/result.rb', line 30 def summary parts = [] parts << "#{changed_nodes.length} changed" if changed_nodes.any? parts << "#{skipped_nodes.length} skipped" if skipped_nodes.any? parts << "#{backdated_nodes.length} backdated" if backdated_nodes.any? parts << "#{recomputed_count} recomputed" parts.join(", ") end |
#to_h ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/igniter/extensions/contracts/incremental/result.rb', line 49 def to_h { changed_nodes: changed_nodes, skipped_nodes: skipped_nodes, backdated_nodes: backdated_nodes, changed_outputs: changed_outputs, recomputed_count: recomputed_count, outputs_changed: outputs_changed?, fully_memoized: fully_memoized?, execution_result: execution_result.to_h } end |