diff options
-rw-r--r-- | lib/rubygems/specification.rb | 2 | ||||
-rw-r--r-- | test/rubygems/test_gem_specification.rb | 10 |
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' |