[rubygems/rubygems] Use Kernel.singleton_class

https://github.com/rubygems/rubygems/commit/9be984f281
This commit is contained in:
Hiroshi SHIBATA 2023-07-31 20:08:30 +09:00 committed by git
parent 3f010d48fc
commit de91ce980a
2 changed files with 3 additions and 6 deletions

View File

@ -87,8 +87,7 @@ module Bundler
if Gem.respond_to?(:discover_gems_on_require=)
Gem.discover_gems_on_require = false
else
kernel = (class << ::Kernel; self; end)
[kernel, ::Kernel].each do |k|
[::Kernel.singleton_class, ::Kernel].each do |k|
if k.private_method_defined?(:gem_original_require)
private_require = k.private_method_defined?(:require)
k.send(:remove_method, :require)

View File

@ -230,8 +230,7 @@ module Bundler
if Gem.respond_to?(:discover_gems_on_require=)
Gem.discover_gems_on_require = false
else
kernel = (class << ::Kernel; self; end)
[kernel, ::Kernel].each do |k|
[::Kernel.singleton_class, ::Kernel].each do |k|
if k.private_method_defined?(:gem_original_require)
redefine_method(k, :require, k.instance_method(:gem_original_require))
end
@ -271,8 +270,7 @@ module Bundler
def replace_gem(specs, specs_by_name)
executables = nil
kernel = (class << ::Kernel; self; end)
[kernel, ::Kernel].each do |kernel_class|
[::Kernel.singleton_class, ::Kernel].each do |kernel_class|
redefine_method(kernel_class, :gem) do |dep, *reqs|
if executables&.include?(File.basename(caller.first.split(":").first))
break