diff options
author | Samuel E. Giddins <segiddins@segiddins.me> | 2014-11-05 10:55:18 -0800 |
---|---|---|
committer | Samuel E. Giddins <segiddins@segiddins.me> | 2014-11-24 11:03:49 -0800 |
commit | f64ab56dafe22fe96e4665a3c3232a147bdb52fd (patch) | |
tree | 0be4a838abf5581b36e41e8c49b4d2f6a7781fba /lib/bundler/resolver.rb | |
parent | b788d910f29fb8ed6858fc4999d8257e2df7865d (diff) | |
download | bundler-f64ab56dafe22fe96e4665a3c3232a147bdb52fd.tar.gz |
[Resolver] Update Molinillo
Diffstat (limited to 'lib/bundler/resolver.rb')
-rw-r--r-- | lib/bundler/resolver.rb | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb index 96fc737326..6d304c7b7b 100644 --- a/lib/bundler/resolver.rb +++ b/lib/bundler/resolver.rb @@ -156,17 +156,17 @@ module Bundler " either #{names.join(' or ')} and try again." end - def before_resolution - end - def after_resolution - end - def indicate_progress - end - - private + # def before_resolution + # end + # def after_resolution + # end + # def indicate_progress + # end include Molinillo::UI + private + include Molinillo::SpecificationProvider def dependencies_for(specification) @@ -181,6 +181,7 @@ module Bundler # puts dependency # puts index.search(dependency, nil) results = index.search(dependency, @base[dependency.name]) + locked_requirement = (vertex = @base_dg.vertex_named(dependency.name) && vertex.requirement) if results.any? version = results.first.version nested = [[]] @@ -191,7 +192,8 @@ module Bundler end nested.last << spec end - nested.map { |a| SpecGroup.new(a) } + groups = nested.map { |a| SpecGroup.new(a) } + !locked_requirement ? groups : groups.select { |sg| locked_requirement.satisfied_by? sg.version } else [] end @@ -218,11 +220,14 @@ module Bundler def sort_dependencies(dependencies, activated, conflicts) dependencies.sort_by do |dependency| name = name_for(dependency) + search = search_for(dependency) + last = search.last + nested_dependencies = last ? last.dependencies_for_activated_platforms.count : 1 [ activated.vertex_named(name).payload ? 0 : 1, - @prereleases_cache[dependency] ? 0 : 1, + @prereleases_cache[dependency.requirement] ? 0 : 1, conflicts[name] ? 0 : 1, - search_for(dependency).count, + activated.vertex_named(name).payload ? 0 : (search.count * Math.sqrt(nested_dependencies) ), ] end end |