lib/xcake/dependency_provider.rb in xcake-0.6.19 vs lib/xcake/dependency_provider.rb in xcake-0.6.20
- old
+ new
@@ -1,28 +1,23 @@
-require 'molinillo'
+require 'tsort'
module Xcake
class DependencyProvider
+ include TSort
- include Molinillo::SpecificationProvider
+ def initialize(dependency_class)
+ plugins = dependency_class.load_plugins
- attr_accessor :repository
-
- def initialize(repository)
- @repository = repository
+ @dependency_graph = plugins.map do |p|
+ [p, p.dependencies]
+ end.to_h
end
- def name_for(dependency)
- dependency
+ def tsort_each_node(&block)
+ @dependency_graph.each_key(&block)
end
- def search_for(dependency)
- @repository.select do |g|
- g == dependency
- end
- end
-
- def dependencies_for(specification)
- specification.dependencies
+ def tsort_each_child(node, &block)
+ @dependency_graph[node].each(&block)
end
end
end