Method: Lyp::DependencyResolver#dependencies_array
- Defined in:
- lib/lyp/resolver.rb
#dependencies_array(leaf, processed = {}) ⇒ Object
Converts a simplified dependency tree into an array of dependencies, containing a sub-array for each top-level dependency. Each such sub-array contains, in its turn, version permutations for the top-level dependency and any transitive dependencies.
300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 |
# File 'lib/lyp/resolver.rb', line 300 def dependencies_array(leaf, processed = {}) return processed[leaf] if processed[leaf] deps_array = [] processed[leaf] = deps_array leaf.each do |pack, versions| a = [] versions.each do |version, deps| perms = [] sub_perms = dependencies_array(deps, processed) if sub_perms == [] perms += [version] else sub_perms[0].each do |perm| perms << [version] + [perm].flatten end end a += perms end deps_array << a end deps_array end |