aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2023-10-18 12:21:10 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2023-10-18 14:51:48 +0900
commit3b690b726df82f399023b26fdb7530fb9009acf5 (patch)
tree3df9ddfd1f556c7be2878f8ec430329fad266553
parentbe1608592e918bcd9abde75a1398a0ca955792fb (diff)
downloadruby-3b690b726df82f399023b26fdb7530fb9009acf5.tar.gz
reject bundled gems if they are declared in Gemfile
-rw-r--r--lib/bundled_gems.rb3
-rw-r--r--lib/bundler/rubygems_integration.rb2
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/bundled_gems.rb b/lib/bundled_gems.rb
index 3239dab81c..6ca5de75ab 100644
--- a/lib/bundled_gems.rb
+++ b/lib/bundled_gems.rb
@@ -68,7 +68,8 @@ module Gem::BUNDLED_GEMS
EXACT[n] or PREFIXED[n = n[%r[\A[^/]+(?=/)]]] && n
end
- def self.warning?(name)
+ def self.warning?(name, specs: nil)
+ return if specs.to_a.map(&:name).include?(name)
name = name.tr("/", "-")
_t, path = $:.resolve_feature_path(name)
return unless gem = find_gem(path)
diff --git a/lib/bundler/rubygems_integration.rb b/lib/bundler/rubygems_integration.rb
index 29bd83a65a..58f49d0a57 100644
--- a/lib/bundler/rubygems_integration.rb
+++ b/lib/bundler/rubygems_integration.rb
@@ -244,7 +244,7 @@ module Bundler
[::Kernel.singleton_class, ::Kernel].each do |kernel_class|
kernel_class.send(:alias_method, :no_warning_require, :require)
kernel_class.send(:define_method, :require) do |name|
- if message = ::Gem::BUNDLED_GEMS.warning?(name)
+ if message = ::Gem::BUNDLED_GEMS.warning?(name, specs: specs)
warn message, :uplevel => 1
end
kernel_class.send(:no_warning_require, name)