lib/rgl/dot.rb in rgl-0.3.1 vs lib/rgl/dot.rb in rgl-0.4.0
- old
+ new
@@ -1,33 +1,33 @@
# dot.rb
-#
-# $Id: dot.rb,v 1.7 2008/02/26 06:01:22 javanthropus Exp $
-#
+#
+# $Id: dot.rb,v 1.8 2008/08/26 20:07:09 javanthropus Exp $
+#
# Minimal Dot support, based on Dave Thomas's dot module (included in rdoc).
# rdot.rb is a modified version which also contains support for undirected
# graphs.
require 'rgl/rdot'
module RGL
module Graph
- # Return a DOT::DOTDigraph for directed graphs or a DOT::DOTSubgraph for an
+ # Return a RGL::DOT::Digraph for directed graphs or a DOT::Subgraph for an
# undirected Graph. _params_ can contain any graph property specified in
# rdot.rb.
def to_dot_graph (params = {})
params['name'] ||= self.class.name.gsub(/:/,'_')
fontsize = params['fontsize'] ? params['fontsize'] : '8'
- graph = (directed? ? DOT::DOTDigraph : DOT::DOTSubgraph).new(params)
- edge_class = directed? ? DOT::DOTDirectedEdge : DOT::DOTEdge
+ graph = (directed? ? DOT::Digraph : DOT::Subgraph).new(params)
+ edge_class = directed? ? DOT::DirectedEdge : DOT::Edge
each_vertex do |v|
name = v.to_s
- graph << DOT::DOTNode.new('name' => name,
- 'fontsize' => fontsize,
- 'label' => name)
+ graph << DOT::Node.new('name' => name,
+ 'fontsize' => fontsize,
+ 'label' => name)
end
each_edge do |u,v|
graph << edge_class.new('from' => u.to_s,
'to' => v.to_s,
'fontsize' => fontsize)
@@ -39,12 +39,12 @@
def print_dotted_on (params = {}, s = $stdout)
s << to_dot_graph(params).to_s << "\n"
end
- # Call dotty[http://www.graphviz.org] for the graph which is written to the file 'graph.dot'
- # in the # current directory.
+ # Call dotty[http://www.graphviz.org] for the graph which is written to the
+ # file 'graph.dot' in the # current directory.
def dotty (params = {})
dotfile = "graph.dot"
File.open(dotfile, "w") {|f|
print_dotted_on(params, f)
@@ -56,14 +56,14 @@
# the graph. Returns the filename of the graphics file.
def write_to_graphic_file (fmt='png', dotfile="graph")
src = dotfile + ".dot"
dot = dotfile + "." + fmt
-
+
File.open(src, 'w') do |f|
f << self.to_dot_graph.to_s << "\n"
end
-
+
system( "dot -T#{fmt} #{src} -o #{dot}" )
dot
end
end # module Graph