# class RubyProf::DotPrinter

Generates a graphviz graph in dot format. To use the dot printer:

    result = RubyProf.profile do
      [code to profile]
    end

    printer = RubyProf::DotPrinter.new(result)
    printer.print(STDOUT)

You can use either dot viewer such as GraphViz, or the dot command line tool to reformat the output into a wide variety of outputs:

    dot -Tpng graph.dot > graph.png

### Constants

CLASS_COLOR
EDGE_COLOR

### Public Class Methods

new(result) click to toggle source

Creates the DotPrinter using a RubyProf::Result.

Calls superclass method RubyProf::AbstractPrinter.new

    # File lib/ruby-prof/printers/dot_printer.rb, line 25
    def initialize(result)
      super(result)
      @seen_methods = Set.new
    end

### Public Instance Methods

print(output = STDOUT, options = {}) click to toggle source

Print a graph report to the provided output.

output - Any IO object, including STDOUT or a file. The default value is STDOUT.

options - Hash of print options. See setup_options for more information.

When profiling results that cover a large number of method calls it helps to use the :min_percent option, for example:

    DotPrinter.new(result).print(STDOUT, :min_percent=>5)

    # File lib/ruby-prof/printers/dot_printer.rb, line 43
    def print(output = STDOUT, options = {})
      @output = output
      setup_options(options)

      puts 'digraph "Profile" {'
      #puts "label=\"#{mode_name} >=#{min_percent}%\\nTotal: #{total_time}\";"
      puts "labelloc=t;"
      puts "labeljust=l;"
      print_threads
      puts '}'
    end