Skip to content

Commit dc74f9c

Browse files
committed
Make uplevel suitable as the option to Kernel#warn
Make Gem::BUNDLED_GEMS.uplevel returns `nil` if `require` frame is not found, for the simplicity.
1 parent baa0500 commit dc74f9c

File tree

1 file changed

+3
-9
lines changed

1 file changed

+3
-9
lines changed

lib/bundled_gems.rb

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,7 @@ def self.replace_require(specs)
4949
kernel_class.send(:alias_method, :no_warning_require, :require)
5050
kernel_class.send(:define_method, :require) do |name|
5151
if message = ::Gem::BUNDLED_GEMS.warning?(name, specs: spec_names)
52-
uplevel = ::Gem::BUNDLED_GEMS.uplevel
53-
if uplevel > 0
54-
Kernel.warn message, uplevel: uplevel
55-
else
56-
Kernel.warn message
57-
end
52+
Kernel.warn message, uplevel: ::Gem::BUNDLED_GEMS.uplevel
5853
end
5954
kernel_class.send(:no_warning_require, name)
6055
end
@@ -86,11 +81,10 @@ def self.uplevel
8681
uplevel += 1
8782
# Don't show script name when bundle exec and call ruby script directly.
8883
if cl.path.end_with?("bundle")
89-
frame_count = 0
90-
break
84+
return
9185
end
9286
end
93-
require_found ? 1 : frame_count - 1
87+
require_found ? 1 : (frame_count - 1).nonzero?
9488
end
9589

9690
def self.warning?(name, specs: nil)

0 commit comments

Comments
 (0)