Class: Graphm::Render::DotRenderer
Instance Method Summary
collapse
#initialize
Instance Method Details
#render_edge(edge) ⇒ Object
37
38
39
40
41
42
43
|
# File 'lib/graphm/render/dot.rb', line 37
def render_edge edge
opts = {}
opts[:label] = "\"%s\"" % edge.prop[:label] if edge.prop.include? :label
opts_str = opts.map{ |k,v| "%s=%s" % [k, v] }.join(',')
return "\t%s -> %s [%s];\n" % [ edge.src.name, edge.dst.name, opts_str ]
end
|
#render_graph(graph) ⇒ Object
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/graphm/render/dot.rb', line 10
def render_graph graph
buff = ""
buff << "digraph graphm {\n"
graph.nodes.each do |name,dinode|
buff << ( render_node dinode )
end
graph.nodes.each do |name,dinode|
dinode.edges.each do |edge|
buff << ( render_edge edge )
end
end
buff << "}\n"
return buff
end
|
#render_node(node) ⇒ Object
27
28
29
30
31
32
33
34
35
|
# File 'lib/graphm/render/dot.rb', line 27
def render_node node
opts = {}
opts[:label] = "\"%s\"" % node.prop[:label] if node.prop.include? :label
opts[:shape] = 'circle' if node.has_prop? :initial
opts[:shape] = 'doublecircle' if node.has_prop? :final
opts_str = opts.map{ |k,v| "%s=%s" % [k, v] }.join(',')
return "\t%s [%s];\n" % [ node.name, opts_str ]
end
|