Class: Tengine::Job::Runtime::Edge::Closer
- Inherits:
-
Object
- Object
- Tengine::Job::Runtime::Edge::Closer
- Defined in:
- lib/tengine/job/runtime/edge.rb
Instance Attribute Summary collapse
-
#closed_edges ⇒ Object
readonly
Returns the value of attribute closed_edges.
Instance Method Summary collapse
- #close(edge) ⇒ Object
-
#initialize(signal, options = {}) ⇒ Closer
constructor
A new instance of Closer.
- #visit(obj) ⇒ Object
Constructor Details
#initialize(signal, options = {}) ⇒ Closer
176 177 178 179 |
# File 'lib/tengine/job/runtime/edge.rb', line 176 def initialize(signal, = {}) @signal = signal @closed_edges = [] end |
Instance Attribute Details
#closed_edges ⇒ Object (readonly)
Returns the value of attribute closed_edges.
175 176 177 |
# File 'lib/tengine/job/runtime/edge.rb', line 175 def closed_edges @closed_edges end |
Instance Method Details
#close(edge) ⇒ Object
181 182 183 184 |
# File 'lib/tengine/job/runtime/edge.rb', line 181 def close(edge) edge.close(@signal) @closed_edges << edge end |
#visit(obj) ⇒ Object
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
# File 'lib/tengine/job/runtime/edge.rb', line 186 def visit(obj) # binding.pry obj = @signal.remember(obj) if obj.is_a?(Tengine::Job::Runtime::End) if parent = obj.parent (parent.next_edges || []).each{|edge| edge.accept_visitor(self)} end elsif obj.is_a?(Tengine::Job::Runtime::Vertex) obj.next_edges.each{|edge| edge.accept_visitor(self)} elsif obj.is_a?(Tengine::Job::Runtime::Edge) close(obj) @signal.cache(obj.destination).accept_visitor(self) else raise "Unsupported class #{obj.inspect}" end end |