[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 коммит произвёл git
Родитель 422144d220
Коммит 8fbe7d0295
2 изменённых файлов: 28 добавлений и 7 удалений

Просмотреть файл

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

Просмотреть файл

@ -1574,6 +1574,25 @@ end
expect(err).to include("csv is not part of the default gems")
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
build_repo4 do
build_gem "csv"