diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bundler/installer.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/bundler/installer.rb b/lib/bundler/installer.rb index fcf68928e4..c19b2edbc0 100644 --- a/lib/bundler/installer.rb +++ b/lib/bundler/installer.rb @@ -68,6 +68,7 @@ module Bundler end resolve_if_need(options) + ensure_specs_are_compatible! install(options) lock unless Bundler.settings[:frozen] @@ -156,6 +157,24 @@ module Bundler install_in_parallel jobs, options[:standalone], force end + def ensure_specs_are_compatible! + system_ruby = Bundler::RubyVersion.system + rubygems_version = Gem::Version.create(Gem::VERSION) + specs.each do |spec| + if required_ruby_version = spec.required_ruby_version + unless required_ruby_version.satisfied_by?(system_ruby.gem_version) + raise InstallError, "#{spec.full_name} requires ruby version #{required_ruby_version}, " \ + "which is incompatible with the current version, #{system_ruby}" + end + end + next unless required_rubygems_version = spec.required_rubygems_version + unless required_rubygems_version.satisfied_by?(rubygems_version) + raise InstallError, "#{spec.full_name} requires rubygems version #{required_rubygems_version}, " \ + "which is incompatible with the current version, #{rubygems_version}" + end + end + end + def can_install_in_parallel? if Bundler.rubygems.provides?(">= 2.1.0") true |