diff --git a/lib/rubygems.rb b/lib/rubygems.rb index 87651eaeb3..7fcf03d855 100644 --- a/lib/rubygems.rb +++ b/lib/rubygems.rb @@ -640,9 +640,8 @@ An Array (#{env.inspect}) was passed in from #{caller[3]} # Load Bundler extensions to RubyGems, making sure to avoid redefinition # warnings in platform constants - def self.load_bundler_extensions - require "bundler/version" - return if Bundler::VERSION >= "2.6.9" + def self.load_bundler_extensions(version) + return unless version <= "2.6.9" previous_platforms = {} @@ -1169,7 +1168,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]} ENV["BUNDLE_GEMFILE"] ||= File.expand_path(path) require_relative "rubygems/user_interaction" - Gem.load_bundler_extensions require "bundler" begin Gem::DefaultUserInteraction.use_ui(ui) do diff --git a/lib/rubygems/core_ext/kernel_require.rb b/lib/rubygems/core_ext/kernel_require.rb index 073966b696..3a9bdbdc9d 100644 --- a/lib/rubygems/core_ext/kernel_require.rb +++ b/lib/rubygems/core_ext/kernel_require.rb @@ -64,8 +64,11 @@ module Kernel rp end - Kernel.send(:gem, name, Gem::Requirement.default_prerelease) unless - resolved_path + next if resolved_path + + Kernel.send(:gem, name, Gem::Requirement.default_prerelease) + + Gem.load_bundler_extensions(Gem.loaded_specs[name].version) if name == "bundler" next end