[前][次][番号順一覧][スレッド一覧]

ruby-changes:56820

From: Benoit <ko1@a...>
Date: Mon, 5 Aug 2019 18:55:51 +0900 (JST)
Subject: [ruby-changes:56820] Benoit Daloze: 2ea2108a9f (master): [rubygems/rubygems] Fix error handling of #with_engine_version

https://git.ruby-lang.org/ruby.git/commit/?id=2ea2108a9f

From 2ea2108a9fb1460342226f54cbf54ddd79ea1cc2 Mon Sep 17 00:00:00 2001
From: Benoit Daloze <eregontp@g...>
Date: Sun, 4 Aug 2019 14:16:42 +0200
Subject: [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

diff --git a/test/rubygems/test_gem_request_set_gem_dependency_api.rb b/test/rubygems/test_gem_request_set_gem_dependency_api.rb
index 24cfb67..959c285 100644
--- a/test/rubygems/test_gem_request_set_gem_dependency_api.rb
+++ b/test/rubygems/test_gem_request_set_gem_dependency_api.rb
@@ -34,21 +34,22 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_request_set_gem_dependency_api.rb#L34
 
     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
-- 
cgit v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]