#!/usr/bin/ruby $:.unshift( "../lib" ); require "graphviz" g = nil if ARGV[0] g = GraphViz::new( "G", "path" => ARGV[0] ) else g = GraphViz::new( "G" ) end g["rankdir"] = "LR" g.node["shape"] = "ellipse" g.edge["arrowhead"] = "normal" [ "box", "boxbox", "lbox", "lboxlbox", "rbox", "rboxrbox", "olbox", "olboxolbox", "orbox", "orboxorbox", "obox", "oboxobox", "crow", "crowcrow", "lcrow", "lcrowlcrow", "rcrow", "rcrowrcrow", "diamond", "diamonddiamond", "ldiamond", "ldiamondldiamond", "rdiamond", "rdiamondrdiamond", "oldiamond", "oldiamondoldiamond", "ordiamond", "ordiamondordiamond", "odiamond", "odiamondodiamond", "dot", "dotdot", "odot", "odotodot", "inv", "invinv", "linv", "linvlinv", "rinv", "rinvrinv", "olinv", "olinvolinv", "orinv", "orinvorinv", "oinv", "oinvoinv", "none", "nonenone", "normal", "normalnormal", "lnormal", "lnormallnormal", "rnormal", "rnormalrnormal", "olnormal", "olnormalolnormal", "ornormal", "ornormalornormal", "onormal", "onormalonormal", "tee", "teetee", "ltee", "lteeltee", "rtee", "rteertee", "vee", "veevee", "lvee", "lveelvee", "rvee", "rveervee" ].each { |s| p = "p_" << s g.add_node( p, "shape" => "point" ) g.add_node( s ) g.add_edge( p, s, "arrowhead" => s ) } g.output( :png => "#{$0}.png" )