Class: LittleGhost::Graph::State

Inherits:
Object
  • Object
show all
Defined in:
lib/little_ghost/graph.rb

Overview

Immutable routing data passed to conditions and input mappers.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(input:, history:, context:, step:, current:, previous:, results:, predecessors: [], branch_results: {}, error: nil) ⇒ State

Returns a new instance of State.



58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/little_ghost/graph.rb', line 58

def initialize(input:, history:, context:, step:, current:, previous:, results:,
  predecessors: [], branch_results: {}, error: nil) # :nodoc:
  @input = input
  @history = history
  @context = context
  @step = step
  @current = current
  @previous = previous
  @predecessors = Array(predecessors).map(&:to_sym).freeze
  @results = results.dup.freeze
  @branch_results = branch_results.dup.freeze
  @error = error
  freeze
end

Instance Attribute Details

#branch_resultsObject (readonly)

Original request data, current routing position, completed results, parallel predecessors, branch results, and the routed failure if any.



55
56
57
# File 'lib/little_ghost/graph.rb', line 55

def branch_results
  @branch_results
end

#contextObject (readonly)

Original request data, current routing position, completed results, parallel predecessors, branch results, and the routed failure if any.



55
56
57
# File 'lib/little_ghost/graph.rb', line 55

def context
  @context
end

#currentObject (readonly)

Original request data, current routing position, completed results, parallel predecessors, branch results, and the routed failure if any.



55
56
57
# File 'lib/little_ghost/graph.rb', line 55

def current
  @current
end

#errorObject (readonly)

Original request data, current routing position, completed results, parallel predecessors, branch results, and the routed failure if any.



55
56
57
# File 'lib/little_ghost/graph.rb', line 55

def error
  @error
end

#historyObject (readonly)

Original request data, current routing position, completed results, parallel predecessors, branch results, and the routed failure if any.



55
56
57
# File 'lib/little_ghost/graph.rb', line 55

def history
  @history
end

#inputObject (readonly)

Original request data, current routing position, completed results, parallel predecessors, branch results, and the routed failure if any.



55
56
57
# File 'lib/little_ghost/graph.rb', line 55

def input
  @input
end

#predecessorsObject (readonly)

Original request data, current routing position, completed results, parallel predecessors, branch results, and the routed failure if any.



55
56
57
# File 'lib/little_ghost/graph.rb', line 55

def predecessors
  @predecessors
end

#previousObject (readonly)

Original request data, current routing position, completed results, parallel predecessors, branch results, and the routed failure if any.



55
56
57
# File 'lib/little_ghost/graph.rb', line 55

def previous
  @previous
end

#resultsObject (readonly)

Original request data, current routing position, completed results, parallel predecessors, branch results, and the routed failure if any.



55
56
57
# File 'lib/little_ghost/graph.rb', line 55

def results
  @results
end

#stepObject (readonly)

Original request data, current routing position, completed results, parallel predecessors, branch results, and the routed failure if any.



55
56
57
# File 'lib/little_ghost/graph.rb', line 55

def step
  @step
end

Instance Method Details

#previous_resultObject

Returns the immediately preceding result when present.



76
# File 'lib/little_ghost/graph.rb', line 76

def previous_result = previous && result(previous)

#result(node_name) ⇒ Object

Returns a completed result by node name.



74
75
# File 'lib/little_ghost/graph.rb', line 74

def result(node_name) = results[node_name.to_sym]
# Returns the immediately preceding result when present.