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