Class: Antz::DependencyResolver

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

Instance Method Summary collapse

Constructor Details

#initialize(importers) ⇒ DependencyResolver

Returns a new instance of DependencyResolver.



9
10
11
# File 'lib/antz/dependency_resolver.rb', line 9

def initialize(importers)
  @importers = importers
end

Instance Method Details

#resolveObject



13
14
15
# File 'lib/antz/dependency_resolver.rb', line 13

def resolve
  tsort.map { |name| @importers[name] }
end

#tsort_each_child(node) ⇒ Object



21
22
23
24
# File 'lib/antz/dependency_resolver.rb', line 21

def tsort_each_child(node, &)
  deps = @importers[node].depends_on
  Array(deps).each(&)
end

#tsort_each_nodeObject



17
18
19
# File 'lib/antz/dependency_resolver.rb', line 17

def tsort_each_node(&)
  @importers.keys.each(&)
end