4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/nanahoshi/info.rb', line 4
def nodes_and_edges
graph = load_graph
gem_names = graph.keys
nodes = gem_names.map{|gn|{name: gn, type: [:start_leaf, :end_leaf]}}
edges = []
graph.each do |gem_name, deps|
source_index = gem_names.index(gem_name)
unless deps.empty?
nodes[source_index][:type].delete(:end_leaf)
end
dependence_edges = deps.map do |dep|
target_index = gem_names.index(dep)
nodes[target_index][:type].delete(:start_leaf)
{source: source_index, target: target_index}
end
edges.concat(dependence_edges)
end
[nodes, edges]
end
|