class CodeMapper::Output::Dot

Public Class Methods

new(io) click to toggle source
# File lib/code_mapper/output/dot.rb, line 6
def initialize(io)
  @io = io
  @stack = []

  @graph = Graphviz::Graph.new('CodeMapper')
  @graph.attributes[:rankdir] = 'LR'
end

Public Instance Methods

done() click to toggle source
# File lib/code_mapper/output/dot.rb, line 29
def done
  @io.puts @graph.to_dot
end
pop(tp, normalized_class_name) click to toggle source
# File lib/code_mapper/output/dot.rb, line 25
def pop(tp, normalized_class_name)
  @stack.pop
end
push(tp, normalized_class_name) click to toggle source
# File lib/code_mapper/output/dot.rb, line 14
def push(tp, normalized_class_name)
  node = @graph.add_node("#{normalized_class_name}.#{tp.method_id.to_s}")
  node.attributes[:shape] = 'rectangle'

  if @stack != []
    @stack.last.connect(node)
  end

  @stack << node
end