Method: Licensed::Sources::Cabal#recursive_dependencies
- Defined in:
- lib/licensed/sources/cabal.rb
#recursive_dependencies(package_names, results = Set.new) ⇒ Object
Recursively finds the dependencies for each cabal package. Returns a ‘Set` containing the package names for all dependencies
87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/licensed/sources/cabal.rb', line 87 def recursive_dependencies(package_names, results = Set.new) return results if package_names.nil? || package_names.empty? new_packages = Set.new(package_names) - results return results if new_packages.empty? results.merge new_packages dependencies = Parallel.map(new_packages, &method(:package_dependencies)).flatten recursive_dependencies(dependencies, results) results end |