summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rubygems/specification.rb2
-rw-r--r--test/rubygems/test_gem_specification.rb10
2 files changed, 11 insertions, 1 deletions
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'