[rubygems/rubygems] Fix error handling of #with_engine_version

* If settings constants fail, show that exception instead of getting
  another one due to variables being unset and hiding the real cause.

https://github.com/rubygems/rubygems/commit/f38cd67874
This commit is contained in:
Benoit Daloze 2019-08-04 14:16:42 +02:00 коммит произвёл Hiroshi SHIBATA
Родитель f9dac1bd54
Коммит 2ea2108a9f
1 изменённых файлов: 13 добавлений и 12 удалений

Просмотреть файл

@ -34,21 +34,22 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
Gem.instance_variable_set :@ruby_version, Gem::Version.new(version)
yield
begin
yield
ensure
Object.send :remove_const, :RUBY_ENGINE if name
Object.send :remove_const, new_engine_version_const if version
ensure
Object.send :remove_const, :RUBY_ENGINE if name
Object.send :remove_const, new_engine_version_const if version
Object.send :remove_const, engine_version_const if name == 'ruby' and
Object.const_defined? engine_version_const
Object.send :remove_const, engine_version_const if name == 'ruby' and
Object.const_defined? engine_version_const
Object.const_set :RUBY_ENGINE, engine if engine
Object.const_set engine_version_const, engine_version unless
Object.const_defined? engine_version_const
Object.const_set :RUBY_ENGINE, engine if engine
Object.const_set engine_version_const, engine_version unless
Object.const_defined? engine_version_const
Gem.send :remove_instance_variable, :@ruby_version if
Gem.instance_variables.include? :@ruby_version
Gem.send :remove_instance_variable, :@ruby_version if
Gem.instance_variables.include? :@ruby_version
end
end
def test_gempspec_with_multiple_runtime_deps