diff options
-rw-r--r-- | lib/bundler/definition.rb | 3 | ||||
-rw-r--r-- | lib/bundler/resolver.rb | 20 |
2 files changed, 12 insertions, 11 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb index 7acd78ea0b..39b2c6dad0 100644 --- a/lib/bundler/definition.rb +++ b/lib/bundler/definition.rb @@ -194,8 +194,7 @@ module Bundler last_resolve else # Run a resolve against the locally available gems - requested_ruby_version = ruby_version.version if ruby_version - last_resolve.merge Resolver.resolve(expanded_dependencies, index, source_requirements, last_resolve, requested_ruby_version) + last_resolve.merge Resolver.resolve(expanded_dependencies, index, source_requirements, last_resolve, Bundler.ruby_version) end end end diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb index edced0077f..95bf9b33e8 100644 --- a/lib/bundler/resolver.rb +++ b/lib/bundler/resolver.rb @@ -127,14 +127,15 @@ module Bundler @source ||= first.source end - def for?(platform, required_ruby_version) - if spec = @specs[platform] - if required_ruby_version && spec_required_ruby_version = spec.required_ruby_version - spec_required_ruby_version.satisfied_by?(required_ruby_version) - else - true - end + def for?(platform, required_ruby) + return true if required_ruby.nil? + return false if @specs[platform].nil? + + if @specs[platform].respond_to?(:required_ruby_version) + spec_ruby = @specs[platform].required_ruby_version end + + spec_ruby.nil? ? true : spec_ruby.satisfied_by?(required_ruby) end def to_s @@ -192,7 +193,7 @@ module Bundler @search_for = {} @base_dg = Molinillo::DependencyGraph.new @base.each {|ls| @base_dg.add_vertex(ls.name, Dependency.new(ls.name, ls.version), true) } - @ruby_version = ruby_version ? Gem::Version.create(ruby_version) : nil + @ruby_version = ruby_version && ruby_version.gem_version end def start(requirements) @@ -272,7 +273,8 @@ module Bundler [] end end - search.select {|sg| sg.for?(platform, @ruby_version) }.each {|sg| sg.activate_platform(platform) } + search.select {|sg| sg.for?(platform, @ruby_version) }. + each {|sg| sg.activate_platform(platform) } end def name_for(dependency) |