/usr/share/rubygems/rubygems
# frozen_string_literal: true module Gem::BundlerVersionFinder def self.bundler_version version, _ = bundler_version_with_reason return unless version 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 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 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 } exact_match_index = specs.find_index {|spec| spec.version == bundler_version } return unless exact_match_index specs.unshift(specs.delete_at(exact_match_index)) end def self.bundle_update_bundler_version return unless File.basename($0) == "bundle".freeze return unless "update".start_with?(ARGV.first || " ") bundler_version = nil update_index = nil ARGV.each_with_index do |a, i| if update_index && update_index.succ == i && a =~ Gem::Version::ANCHORED_VERSION_PATTERN bundler_version = a end next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/ bundler_version = $1 || true update_index = i end bundler_version end private_class_method :bundle_update_bundler_version def self.lockfile_version return unless lockfile = lockfile_contents lockfile, contents = lockfile lockfile ||= "lockfile" regexp = /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/ return unless contents =~ regexp [$1, lockfile] end private_class_method :lockfile_version def self.lockfile_contents gemfile = ENV["BUNDLE_GEMFILE"] gemfile = nil if gemfile && gemfile.empty? unless gemfile begin Gem::Util.traverse_parents(Dir.pwd) do |directory| next unless gemfile = Gem::GEM_DEP_FILES.find {|f| File.file?(f.tap(&Gem::UNTAINT)) } gemfile = File.join directory, gemfile break end rescue Errno::ENOENT return end end return unless gemfile lockfile = case gemfile when "gems.rb" then "gems.locked" else "#{gemfile}.lock" end.dup.tap(&Gem::UNTAINT) return unless File.file?(lockfile) [lockfile, File.read(lockfile)] end private_class_method :lockfile_contents end
.
Edit
..
Edit
available_set.rb
Edit
basic_specification.rb
Edit
bundler_version_finder.rb
Edit
command.rb
Edit
command_manager.rb
Edit
commands
Edit
compatibility.rb
Edit
config_file.rb
Edit
core_ext
Edit
defaults
Edit
defaults.rb
Edit
dependency.rb
Edit
dependency_installer.rb
Edit
dependency_list.rb
Edit
deprecate.rb
Edit
doctor.rb
Edit
errors.rb
Edit
exceptions.rb
Edit
ext
Edit
ext.rb
Edit
gem_runner.rb
Edit
gemcutter_utilities.rb
Edit
indexer.rb
Edit
install_default_message.rb
Edit
install_message.rb
Edit
install_update_options.rb
Edit
installer.rb
Edit
installer_uninstaller_utils.rb
Edit
local_remote_options.rb
Edit
mock_gem_ui.rb
Edit
name_tuple.rb
Edit
openssl.rb
Edit
optparse
Edit
optparse.rb
Edit
package
Edit
package.rb
Edit
package_task.rb
Edit
path_support.rb
Edit
platform.rb
Edit
psych_additions.rb
Edit
psych_tree.rb
Edit
query_utils.rb
Edit
rdoc.rb
Edit
remote_fetcher.rb
Edit
request
Edit
request.rb
Edit
request_set
Edit
request_set.rb
Edit
requirement.rb
Edit
resolver
Edit
resolver.rb
Edit
s3_uri_signer.rb
Edit
safe_yaml.rb
Edit
security
Edit
security.rb
Edit
security_option.rb
Edit
server.rb
Edit
source
Edit
source.rb
Edit
source_list.rb
Edit
spec_fetcher.rb
Edit
specification.rb
Edit
specification_policy.rb
Edit
ssl_certs
Edit
stub_specification.rb
Edit
text.rb
Edit
tsort
Edit
tsort.rb
Edit
uninstaller.rb
Edit
uri.rb
Edit
uri_formatter.rb
Edit
user_interaction.rb
Edit
util
Edit
util.rb
Edit
validator.rb
Edit
version.rb
Edit
version_option.rb
Edit