18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/motion_blender/graph_maker.rb', line 18
def build
g = GraphViz.new(@title || 'Graph', type: :digraph, use: @layout)
label = [@title, (@filter && "/#{@filter}/")].compact.join(' ')
g[:label] = label if label.present?
g[:overlap] = false
deps =
@dependencies
.select { |k, _| acceptable? k }
.map { |k, v| [k, v.select { |f| acceptable? f }] }
deps.map { |k, v| [k, *v] }.flatten.uniq.reverse_each do |f|
g.add_node f, node_options_for(f)
end
deps.each do |k, v|
v.each { |f| g.add_edge k, f, edge_options_for(k, f) }
end
g.output(output_format => @output)
end
|