class Renderer::GraphViz
Public Class Methods
new(file_name, config)
click to toggle source
# File lib/renderer/graphviz.rb, line 5 def initialize(file_name, config) @g = Graphviz::Graph.new('G', **{ overlap: false, splines: true, sep: 1, concentrate: true, rankdir: "LR" }) @file_name = file_name @config = config end
Public Instance Methods
add_edge(from, to, opts)
click to toggle source
# File lib/renderer/graphviz.rb, line 21 def add_edge(from, to, opts) from_node = create_if_missing(from) to_node = create_if_missing(to) options = ({style: 'bold'}).merge(opts) from_node.connect(to_node, options) end
add_node(name, opts)
click to toggle source
# File lib/renderer/graphviz.rb, line 17 def add_node(name, opts) @g.add_node(name, label: name) end
create_if_missing(name)
click to toggle source
# File lib/renderer/graphviz.rb, line 28 def create_if_missing(name) n = @g.get_node(name).first n.nil? ? add_node(name, {}) : n end
output()
click to toggle source
# File lib/renderer/graphviz.rb, line 33 def output Graphviz::output(@g, path: @file_name, format: nil) #format: nil to force detection based on extension. end