From a94cbf81e1fcef1f50af631e3b1117c2bf68df7f Mon Sep 17 00:00:00 2001 From: hsbt Date: Tue, 4 Dec 2018 08:00:57 +0000 Subject: [PATCH] Merge rubygems master@221bdea * Fixed https://github.com/rubygems/rubygems/pull/2506 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rubygems/specification.rb | 2 +- test/rubygems/test_gem_specification.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb index 7eaa509d2b..b620021c5c 100644 --- a/lib/rubygems/specification.rb +++ b/lib/rubygems/specification.rb @@ -2693,7 +2693,7 @@ class Gem::Specification < Gem::BasicSpecification @version = Gem::Version.create(version) # skip to set required_ruby_version when pre-released rubygems. # It caused to raise CircularDependencyError - if @version.prerelease? && @name.strip != "rubygems" + if @version.prerelease? && (@name.nil? || @name.strip != "rubygems") self.required_rubygems_version = '> 1.3.1' end invalidate_memoized_attributes diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb index 4fbb1e73e0..7a26d5918e 100644 --- a/test/rubygems/test_gem_specification.rb +++ b/test/rubygems/test_gem_specification.rb @@ -1345,6 +1345,16 @@ dependencies: [] assert_equal '/path/to/file', e.file_path end + def test_initialize_prerelease_version_before_name + spec = Gem::Specification.new do |s| + s.version = '1.0.0.dev' + s.name = 'a' + end + + assert_equal "a", spec.name + assert_equal "1.0.0.dev", spec.version.to_s + end + def test__dump @a2.platform = Gem::Platform.local @a2.instance_variable_set :@original_platform, 'old_platform'