Skip to content

Commit ddb412f

Browse files
deivid-rodriguezhsbt
authored andcommitted
[rubygems/rubygems] Fix redefinition warnings when using modern RubyGems with old Bundler
ruby/rubygems@ce7e8e92ca
1 parent 022c18b commit ddb412f

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

lib/rubygems.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1144,7 +1144,7 @@ def self.use_gemdeps(path = nil)
11441144

11451145
ENV["BUNDLE_GEMFILE"] ||= File.expand_path(path)
11461146
require_relative "rubygems/user_interaction"
1147-
require "bundler"
1147+
require_relative "rubygems/bundler_integration"
11481148
begin
11491149
Gem::DefaultUserInteraction.use_ui(ui) do
11501150
Bundler.ui.silence do
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# frozen_string_literal: true
2+
3+
require "bundler/version"
4+
5+
if Bundler::VERSION > "2.6.9"
6+
require "bundler"
7+
else
8+
previous_platforms = {}
9+
10+
platform_const_list = ["JAVA", "MSWIN", "MSWIN64", "MINGW", "X64_MINGW_LEGACY", "X64_MINGW", "UNIVERSAL_MINGW", "WINDOWS", "X64_LINUX", "X64_LINUX_MUSL"]
11+
12+
platform_const_list.each do |platform|
13+
previous_platforms[platform] = Gem::Platform.const_get(platform)
14+
Gem::Platform.send(:remove_const, platform)
15+
end
16+
17+
require "bundler"
18+
19+
platform_const_list.each do |platform|
20+
Gem::Platform.send(:remove_const, platform) if Gem::Platform.const_defined?(platform)
21+
Gem::Platform.const_set(platform, previous_platforms[platform])
22+
end
23+
end

0 commit comments

Comments
 (0)