Class: Tengine::Job::Edge::Closer

Inherits:
Object
  • Object
show all
Defined in:
lib/tengine/job/edge.rb

Instance Method Summary collapse

Instance Method Details

#visit(obj) ⇒ Object



132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/tengine/job/edge.rb', line 132

def visit(obj)
  if obj.is_a?(Tengine::Job::End)
    if parent = obj.parent
      (parent.next_edges || []).each{|edge| edge.accept_visitor(self)}
    end
  elsif obj.is_a?(Tengine::Job::Vertex)
    obj.next_edges.each{|edge| edge.accept_visitor(self)}
  elsif obj.is_a?(Tengine::Job::Edge)
    obj.close(nil)
    obj.destination.accept_visitor(self)
  else
    raise "Unsupported class #{obj.inspect}"
  end
end