Only warn fiddle as optional dependency
This commit is contained in:
parent
eff16d9302
commit
ff3f61556f
@ -52,6 +52,10 @@ module Gem::BUNDLED_GEMS
|
|||||||
"syslog" => true,
|
"syslog" => true,
|
||||||
}.freeze
|
}.freeze
|
||||||
|
|
||||||
|
OPTIONAL = {
|
||||||
|
"fiddle" => true,
|
||||||
|
}.freeze
|
||||||
|
|
||||||
WARNED = {} # unfrozen
|
WARNED = {} # unfrozen
|
||||||
|
|
||||||
conf = ::RbConfig::CONFIG
|
conf = ::RbConfig::CONFIG
|
||||||
@ -69,9 +73,15 @@ module Gem::BUNDLED_GEMS
|
|||||||
[::Kernel.singleton_class, ::Kernel].each do |kernel_class|
|
[::Kernel.singleton_class, ::Kernel].each do |kernel_class|
|
||||||
kernel_class.send(:alias_method, :no_warning_require, :require)
|
kernel_class.send(:alias_method, :no_warning_require, :require)
|
||||||
kernel_class.send(:define_method, :require) do |name|
|
kernel_class.send(:define_method, :require) do |name|
|
||||||
result = kernel_class.send(:no_warning_require, name)
|
|
||||||
|
|
||||||
if result && message = ::Gem::BUNDLED_GEMS.warning?(name, specs: spec_names)
|
message = ::Gem::BUNDLED_GEMS.warning?(name, specs: spec_names)
|
||||||
|
begin
|
||||||
|
result = kernel_class.send(:no_warning_require, name)
|
||||||
|
rescue LoadError => e
|
||||||
|
result = e
|
||||||
|
end
|
||||||
|
|
||||||
|
if (result || !OPTIONAL[name]) && message
|
||||||
if ::Gem::BUNDLED_GEMS.uplevel > 0
|
if ::Gem::BUNDLED_GEMS.uplevel > 0
|
||||||
Kernel.warn message, uplevel: ::Gem::BUNDLED_GEMS.uplevel
|
Kernel.warn message, uplevel: ::Gem::BUNDLED_GEMS.uplevel
|
||||||
else
|
else
|
||||||
@ -79,8 +89,13 @@ module Gem::BUNDLED_GEMS
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
result
|
if result.is_a?(LoadError)
|
||||||
|
raise result
|
||||||
|
else
|
||||||
|
result
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if kernel_class == ::Kernel
|
if kernel_class == ::Kernel
|
||||||
kernel_class.send(:private, :require)
|
kernel_class.send(:private, :require)
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user