Class: Graphm::Render::DotRenderer

Inherits:
GenericRenderer show all
Defined in:
lib/graphm/render/dot.rb

Instance Method Summary collapse

Methods inherited from GenericRenderer

#initialize

Constructor Details

This class inherits a constructor from Graphm::Render::GenericRenderer

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