Class: ScbiGo::BaseGraph

Inherits:
Object
  • Object
show all
Defined in:
lib/scbi_go/base_graph.rb

Direct Known Subclasses

AncestorsGraph, DescendantsGraph

Instance Method Summary collapse

Constructor Details

#initialize(nodes, file_name = nil, name = 'my_graph', generate_pdf = false) ⇒ BaseGraph

create a dot file and optional pdf file



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/scbi_go/base_graph.rb', line 5

def initialize(nodes, file_name=nil, name='my_graph', generate_pdf=false)
  @graph_name=name

  if !nodes.empty?
    res =[]
    res += build_dot_lines(nodes)
    if !file_name.nil?
      f=File.new(file_name,'w')
      f.puts res
      f.close

    if generate_pdf
      system("dot -Tpdf #{file_name} -o #{file_name}.pdf")
    end

    end
  end 
end

Instance Method Details

#build_dot_lines(nodes) ⇒ Object

define the way that nodes are painted in dot



25
26
27
28
29
30
31
32
33
34
# File 'lib/scbi_go/base_graph.rb', line 25

def build_dot_lines(nodes)

  res =[]
  res << "graph #{@graph_name} {"
    nodes.each do |node|
      res << "#{node.id.gsub(':','_')}[label=\"#{node.id}\n#{node.name}\"];"
    end
  res << "}"
  return res
end