19: def to_dot_graph (params = {})
20: params['name'] ||= self.class.name.gsub(/:/,'_')
21: fontsize = params['fontsize'] ? params['fontsize'] : '8'
22: graph = (directed? ? DOT::DOTDigraph : DOT::DOTSubgraph).new(params)
23: edge_class = directed? ? DOT::DOTDirectedEdge : DOT::DOTEdge
24: each_vertex do |v|
25: name = v.to_s
26: graph << DOT::DOTNode.new('name' => name,
27: 'fontsize' => fontsize,
28: 'label' => name)
29: end
30: each_edge do |u,v|
31: graph << edge_class.new('from' => u.to_s,
32: 'to' => v.to_s,
33: 'fontsize' => fontsize)
34: end
35: graph
36: end