Class: Hash

Inherits:
Object
  • Object
show all
Includes:
TSort
Defined in:
lib/dep_analyzer.rb

Instance Method Summary collapse

Instance Method Details

#minvertObject



48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/dep_analyzer.rb', line 48

def minvert
  r = Hash.new { |h,k| h[k] = [] }
  invert.each do |keys, val|
    keys.each do |key|
      r[key] << val
    end
  end
  r.each do |k,v|
    r[k] = v.sort
  end
  r
end

#t(k) ⇒ Object



69
70
71
72
73
74
75
# File 'lib/dep_analyzer.rb', line 69

def t(k)
  r = Set.new
  self[k].each do |v|
    r.push(v, *t(v))
  end
  r.to_a.sort
end

#transitiveObject



61
62
63
64
65
66
67
# File 'lib/dep_analyzer.rb', line 61

def transitive
  r = Hash.new { |h,k| h[k] = [] }
  each do |k,v|
    r[k].push(*t(k))
  end
  r
end

#tsort_each_child(node, &block) ⇒ Object



44
45
46
# File 'lib/dep_analyzer.rb', line 44

def tsort_each_child(node, &block)
  fetch(node).each(&block)
end