Method: Lyp::DependencyResolver#filter_invalid_permutations
- Defined in:
- lib/lyp/resolver.rb
#filter_invalid_permutations(permutations) ⇒ Object
Remove invalid permutations, that is permutations that contain multiple versions of the same package, a scenario which could arrive in the case of circular dependencies, or when different dependencies rely on different versions of the same transitive dependency.
330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 |
# File 'lib/lyp/resolver.rb', line 330 def filter_invalid_permutations(permutations) valid = [] permutations.each do |perm| versions = {}; invalid = false perm.each do |ref| if ref =~ /(.+)@(.+)/ name, version = $1, $2 if versions[name] && versions[name] != version invalid = true break else versions[name] = version end end end valid << perm.uniq unless invalid end valid end |