diff options
author | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2021-12-23 09:21:36 +0900 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2021-12-23 09:44:45 +0900 |
commit | fb1ab27f535833f1ba1648d7cdce4cc893e36d07 (patch) | |
tree | fab2ac1a60ba75a8e897d6077c8234af2fd77900 /lib/rubygems/bundler_version_finder.rb | |
parent | feaf4fbc3fa16382fbd07158c448c7b5bdae78b5 (diff) |
Merge RubyGems-3.3.1 and Bundler-2.3.1
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/5325
Diffstat (limited to 'lib/rubygems/bundler_version_finder.rb')
-rw-r--r-- | lib/rubygems/bundler_version_finder.rb | 52 |
1 files changed, 10 insertions, 42 deletions
diff --git a/lib/rubygems/bundler_version_finder.rb b/lib/rubygems/bundler_version_finder.rb index 9ce0a2378e..14179aebf3 100644 --- a/lib/rubygems/bundler_version_finder.rb +++ b/lib/rubygems/bundler_version_finder.rb @@ -2,48 +2,18 @@ module Gem::BundlerVersionFinder def self.bundler_version - version, _ = bundler_version_with_reason + v = ENV["BUNDLER_VERSION"] - return unless version + v ||= bundle_update_bundler_version + return if v == true - Gem::Version.new(version) - end - - def self.bundler_version_with_reason - if v = ENV["BUNDLER_VERSION"] - return [v, "`$BUNDLER_VERSION`"] - end - if v = bundle_update_bundler_version - return if v == true - return [v, "`bundle update --bundler`"] - end - v, lockfile = lockfile_version - if v - return [v, "your #{lockfile}"] - end - end + v ||= lockfile_version + return unless v - def self.missing_version_message - return unless vr = bundler_version_with_reason - <<-EOS -Could not find 'bundler' (#{vr.first}) required by #{vr.last}. -To update to the latest version installed on your system, run `bundle update --bundler`. -To install the missing version, run `gem install bundler:#{vr.first}` - EOS + Gem::Version.new(v) end - def self.compatible?(spec) - return true unless spec.name == "bundler".freeze - return true unless bundler_version = self.bundler_version - - spec.version.segments.first == bundler_version.segments.first - end - - def self.filter!(specs) - return unless bundler_version = self.bundler_version - - specs.reject! {|spec| spec.version.segments.first != bundler_version.segments.first } - + def self.prioritize!(specs) exact_match_index = specs.find_index {|spec| spec.version == bundler_version } return unless exact_match_index @@ -68,12 +38,10 @@ To install the missing version, run `gem install bundler:#{vr.first}` private_class_method :bundle_update_bundler_version def self.lockfile_version - return unless lockfile = lockfile_contents - lockfile, contents = lockfile - lockfile ||= "lockfile" + return unless contents = lockfile_contents regexp = /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/ return unless contents =~ regexp - [$1, lockfile] + $1 end private_class_method :lockfile_version @@ -103,7 +71,7 @@ To install the missing version, run `gem install bundler:#{vr.first}` return unless File.file?(lockfile) - [lockfile, File.read(lockfile)] + File.read(lockfile) end private_class_method :lockfile_contents end |