Module: Dependz::SortLevel

Included in:
Client
Defined in:
lib/dependz/sort_level.rb

Instance Method Summary collapse

Instance Method Details

#sort_levelObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/dependz/sort_level.rb', line 7

def sort_level
  @level_map = {}

  roots(dag).each do |root|
    @level = 0
    visitor = dfs_visitor(dag)
    dag.reverse.depth_first_visit(root, visitor) { |x| }
  end

  @level_map.each_with_object([]) do |item_with_level, result|
    item  = item_with_level[0]
    level = item_with_level[1] - 1

    if result[level].nil?
      result[level] = [item]
    else
      result[level].push(item)
    end
  end
end