[rubygems/rubygems] Skip warnings if bundled gems is already loaded

https://github.com/rubygems/rubygems/commit/9583a7eb82
This commit is contained in:
Hiroshi SHIBATA 2023-07-21 10:21:39 +09:00 committed by git
parent 422144d220
commit 8fbe7d0295
2 changed files with 28 additions and 7 deletions

View File

@ -233,13 +233,15 @@ module Bundler
kernel_class.send(:define_method, :require) do |file| kernel_class.send(:define_method, :require) do |file|
name = file.tr("/", "-") name = file.tr("/", "-")
if (::Gem::BUNDLED_GEMS.keys - specs.to_a.map(&:name)).include?(name) if (::Gem::BUNDLED_GEMS.keys - specs.to_a.map(&:name)).include?(name)
target_file = begin unless $LOADED_FEATURES.any?{|f| f.end_with?("#{name}.rb", "#{name}.#{RbConfig::CONFIG['DLEXT']}")}
Bundler.default_gemfile.basename target_file = begin
rescue GemfileNotFound Bundler.default_gemfile.basename
"inline Gemfile" rescue GemfileNotFound
end "inline Gemfile"
warn "#{name} is not part of the default gems since Ruby #{::Gem::BUNDLED_GEMS[file]}." \ end
" Add it to your #{target_file}." warn "#{name} is not part of the default gems since Ruby #{::Gem::BUNDLED_GEMS[file]}." \
" Add it to your #{target_file}."
end
end end
kernel_class.send(:no_warning_require, file) kernel_class.send(:no_warning_require, file)
end end

View File

@ -1574,6 +1574,25 @@ end
expect(err).to include("csv is not part of the default gems") expect(err).to include("csv is not part of the default gems")
end end
it "don't warn with bundled gems when it's loaded twice" do
build_repo4 do
build_gem "rack"
end
install_gemfile <<-G
source "#{file_uri_for(gem_repo4)}"
gem "rack"
G
ruby <<-R
require 'csv'
require 'bundler/setup'
require 'csv'
R
expect(err).to be_empty
end
it "don't warn with bundled gems when it's declared in Gemfile" do it "don't warn with bundled gems when it's declared in Gemfile" do
build_repo4 do build_repo4 do
build_gem "csv" build_gem "csv"