Skip to content

Commit ce7e8e9

Browse files
Fix redefinition warnings when using modern RubyGems with old Bundler
1 parent 0e6688a commit ce7e8e9

3 files changed

Lines changed: 25 additions & 1 deletion

File tree

Manifest.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,7 @@ hide_lib_for_update/note.txt
364364
lib/rubygems.rb
365365
lib/rubygems/available_set.rb
366366
lib/rubygems/basic_specification.rb
367+
lib/rubygems/bundler_integration.rb
367368
lib/rubygems/bundler_version_finder.rb
368369
lib/rubygems/ci_detector.rb
369370
lib/rubygems/command.rb

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)