Ignore duplicated warning with native extension

This commit is contained in:
Hiroshi SHIBATA 2023-10-13 14:56:54 +09:00
parent c6728caeb7
commit 35edc14ee1

View File

@ -68,17 +68,17 @@ module Gem::BUNDLED_GEMS
EXACT[n] or PREFIXED[n = n[%r[\A[^/]+(?=/)]]] && n EXACT[n] or PREFIXED[n = n[%r[\A[^/]+(?=/)]]] && n
end end
# for Bundler environment especially Bundler.setup.
def self.warning?(name) def self.warning?(name)
name = name.tr("/", "-") name = name.tr("/", "-")
_t, path = $:.resolve_feature_path(name) _t, path = $:.resolve_feature_path(name)
return unless gem = find_gem(path) return unless gem = find_gem(path)
caller = caller_locations(3, 3).find {|c| c&.absolute_path} caller = caller_locations(3, 3).find {|c| c&.absolute_path}
return if find_gem(caller&.absolute_path) return if find_gem(caller&.absolute_path)
name = name.sub(LIBEXT, "") # assume "foo.rb"/"foo.so" belongs to "foo" gem
return if WARNED[name] return if WARNED[name]
WARNED[name] = true WARNED[name] = true
if gem == true if gem == true
gem = name.sub(LIBEXT, "") # assume "foo.rb"/"foo.so" belongs to "foo" gem gem = name
elsif gem elsif gem
return if WARNED[gem] return if WARNED[gem]
WARNED[gem] = true WARNED[gem] = true