Module: IB::DependencyResolver::TSortable

Defined in:
lib/ib/dependency_resolver.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.merge!(a, b) ⇒ Object



38
39
40
41
42
43
44
45
46
47
# File 'lib/ib/dependency_resolver.rb', line 38

def merge!(a, b)
  b.each do |k, v|
    if a.key?(k)
      a[k].concat(v)
    else
      a[k] = v
    end
  end
  a
end

Instance Method Details

#node_with_super_classObject



27
28
29
30
31
32
# File 'lib/ib/dependency_resolver.rb', line 27

def node_with_super_class
  {
    sub_class   => sub_class_dependencies,
    super_class => [],
  }
end

#node_without_super_classObject



34
35
36
# File 'lib/ib/dependency_resolver.rb', line 34

def node_without_super_class
  { sub_class => sub_class_dependencies }
end

#to_nodeObject



18
19
20
21
22
23
24
25
# File 'lib/ib/dependency_resolver.rb', line 18

def to_node
  sub_class_dependencies_nodes = sub_class_dependencies.inject({}) do |sum, i|
    sum.merge!({ i => [] })
  end

  (super_class ? node_with_super_class : node_without_super_class).
    merge(sub_class_dependencies_nodes)
end