Ruby/GraphViz

Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Gregoire Lejeune

DESCRIPTION

Interface to the GraphViz graphing tool

SYNOPSIS

A basic example

require 'graphviz'
# Create a new graph
g = GraphViz.new( :G, :type => :digraph )
# Create two nodes
hello = g.add_node( "Hello" )
world = g.add_node( "World" )
# Create an edge between the two nodes
g.add_edge( hello, world )
# Generate output image
g.output( :png => "hello_world.png" )

The same but with a block

require 'graphviz'
GraphViz::new( :G, :type => :digraph ) { |g|
  g.world( :label => "World" ) << g.hello( :label => "Hello" )
}.output( :png => "hello_world.png" )

Create a graph from a file

require 'graphviz'
# In this example, hello.dot is :
#   digraph G {Hello->World;}
GraphViz.parse( "hello.dot", :path => "/usr/local/bin" ) { |g|
  g.get_node("Hello") { |n|
    n[:label] = "Bonjour"
  }
  g.get_node("World") { |n|
    n[:label] = "Le Monde"
  }
}.output(:png => "sample.png")

INSTALLATION

sudo gem install ruby-graphviz

You also need to install GraphViz and Treetop

On Windows you also need to install win32-open3. This is not an absolute requirement.

LICENCE

Ruby/GraphViz is freely distributable according to the terms of the GNU General Public License (see the file 'COPYING').

This program is distributed without any warranty. See the file 'COPYING' for details.