diff options
| author | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2023-07-20 09:10:33 +0900 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2023-07-25 06:23:23 +0000 |
| commit | 0ae227ebe22bcec74fcd5fd6acd1b724ab0d8c16 (patch) | |
| tree | 12481f11281669d923d49e4c68ad68869b1250ee | |
| parent | a23fe8e84d8c73e45062008b4d020d47161858f3 (diff) | |
[rubygems/rubygems] Also check Kernel.require for infinite loop
https://github.com/rubygems/rubygems/commit/961d9ac1bd
| -rw-r--r-- | lib/bundler/rubygems_integration.rb | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/bundler/rubygems_integration.rb b/lib/bundler/rubygems_integration.rb index dcd1108e66..3110d3358e 100644 --- a/lib/bundler/rubygems_integration.rb +++ b/lib/bundler/rubygems_integration.rb @@ -226,13 +226,14 @@ module Bundler end def replace_require(specs) - return if ::Kernel.respond_to?(:no_warning_require) + kernel = (class << ::Kernel; self; end) + + return if [kernel, ::Kernel].any?{|klass| klass.respond_to?(:no_warning_require)} bundled_gems = %w[ abbrev observer getoptlong resolv-replace rinda nkf syslog drb mutex_m csv base64 ] - kernel = (class << ::Kernel; self; end) [kernel, ::Kernel].each do |kernel_class| kernel_class.send(:alias_method, :no_warning_require, :require) kernel_class.send(:define_method, :require) do |file| |
