Class: Tengine::Job::Structure::Visitor::TraceEdge

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

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ TraceEdge

Returns a new instance of TraceEdge.



53
54
55
# File 'lib/tengine/job/structure/visitor.rb', line 53

def initialize(&block)
  @block = block
end

Instance Method Details

#visit(obj) ⇒ Object



57
58
59
60
61
62
63
64
# File 'lib/tengine/job/structure/visitor.rb', line 57

def visit(obj)
  @block.call(obj)
  if obj.respond_to?(:destination)
    obj.destination.accept_visitor(self)
  elsif obj.respond_to?(:next_edges)
    obj.next_edges.each{|edge| edge.accept_visitor(self) }
  end
end