From 4aca77edde91f826aa243e268bf1ef5214530583 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Tue, 8 Dec 2020 16:33:39 +0900 Subject: Merge prepare version of RubyGems 3.2.0 --- lib/rubygems/core_ext/kernel_require.rb | 3 +++ lib/rubygems/core_ext/kernel_warn.rb | 13 ++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'lib/rubygems/core_ext') diff --git a/lib/rubygems/core_ext/kernel_require.rb b/lib/rubygems/core_ext/kernel_require.rb index edf046651e..4b867c55e9 100644 --- a/lib/rubygems/core_ext/kernel_require.rb +++ b/lib/rubygems/core_ext/kernel_require.rb @@ -17,6 +17,8 @@ module Kernel private :gem_original_require end + file = Gem::KERNEL_WARN_IGNORES_INTERNAL_ENTRIES ? "" : __FILE__ + module_eval <<'RUBY', file, __LINE__ + 1 ## # When RubyGems is required, Kernel#require is replaced with our own which # is capable of loading gems on demand. @@ -166,6 +168,7 @@ module Kernel end end end +RUBY private :require diff --git a/lib/rubygems/core_ext/kernel_warn.rb b/lib/rubygems/core_ext/kernel_warn.rb index e030ef815c..3373cfdd3b 100644 --- a/lib/rubygems/core_ext/kernel_warn.rb +++ b/lib/rubygems/core_ext/kernel_warn.rb @@ -1,12 +1,12 @@ # frozen_string_literal: true # `uplevel` keyword argument of Kernel#warn is available since ruby 2.5. -if RUBY_VERSION >= "2.5" +if RUBY_VERSION >= "2.5" && !Gem::KERNEL_WARN_IGNORES_INTERNAL_ENTRIES module Kernel rubygems_path = "#{__dir__}/" # Frames to be skipped start with this path. - original_warn = method(:warn) + original_warn = instance_method(:warn) remove_method :warn @@ -17,9 +17,9 @@ if RUBY_VERSION >= "2.5" module_function define_method(:warn) {|*messages, **kw| unless uplevel = kw[:uplevel] if Gem.java_platform? - return original_warn.call(*messages) + return original_warn.bind(self).call(*messages) else - return original_warn.call(*messages, **kw) + return original_warn.bind(self).call(*messages, **kw) end end @@ -45,11 +45,10 @@ if RUBY_VERSION >= "2.5" end end end - uplevel = start + kw[:uplevel] = start end - kw[:uplevel] = uplevel - original_warn.call(*messages, **kw) + original_warn.bind(self).call(*messages, **kw) } end end -- cgit v1.2.3