Merge rubygems-3.0.2.

https://blog.rubygems.org/2019/01/01/3.0.2-released.html

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
hsbt 2019-01-01 04:53:52 +00:00
parent f77d381159
commit 6e7213f427
5 changed files with 33 additions and 4 deletions

View File

@ -9,7 +9,7 @@
require 'rbconfig'
module Gem
VERSION = "3.0.1".freeze
VERSION = "3.0.2".freeze
end
# Must be first since it unloads the prelude from 1.9.2

View File

@ -30,7 +30,7 @@ module Gem::InstallUpdateOptions
options[:bin_dir] = File.expand_path(value)
end
add_option(:"Install/Update", '--[no-]document [TYPES]', Array,
add_option(:"Install/Update", '--document [TYPES]', Array,
'Generate documentation for installed gems',
'List the documentation types you wish to',
'generate. For example: rdoc,ri') do |value, options|

View File

@ -267,7 +267,22 @@ class Gem::Requirement
def ==(other) # :nodoc:
return unless Gem::Requirement === other
requirements == other.requirements
# An == check is always necessary
return false unless requirements == other.requirements
# An == check is sufficient unless any requirements use ~>
return true unless _tilde_requirements.any?
# If any requirements use ~> we use the stricter `#eql?` that also checks
# that version precision is the same
_tilde_requirements.eql?(other._tilde_requirements)
end
protected
def _tilde_requirements
requirements.select { |r| r.first == "~>" }
end
private

View File

@ -150,6 +150,11 @@ class TestGem < Gem::TestCase
File.umask(umask)
end
def test_self_install_permissions_with_format_executable
@format_executable = true
assert_self_install_permissions
end
def assert_self_install_permissions
mask = /mingw|mswin/ =~ RUBY_PLATFORM ? 0700 : 0777
options = {
@ -157,6 +162,7 @@ class TestGem < Gem::TestCase
:prog_mode => 0510,
:data_mode => 0640,
:wrappers => true,
:format_executable => !!(@format_executable if defined?(@format_executable))
}
Dir.chdir @tempdir do
Dir.mkdir 'bin'
@ -182,8 +188,10 @@ class TestGem < Gem::TestCase
prog_mode = (options[:prog_mode] & mask).to_s(8)
dir_mode = (options[:dir_mode] & mask).to_s(8)
data_mode = (options[:data_mode] & mask).to_s(8)
prog_name = 'foo.cmd'
prog_name = RUBY_INSTALL_NAME.sub('ruby', 'foo.cmd') if options[:format_executable]
expected = {
"bin/#{RUBY_INSTALL_NAME.sub('ruby', 'foo.cmd')}" => prog_mode,
"bin/#{prog_name}" => prog_mode,
'gems/foo-1' => dir_mode,
'gems/foo-1/bin' => dir_mode,
'gems/foo-1/data' => dir_mode,

View File

@ -20,6 +20,12 @@ class TestGemRequirement < Gem::TestCase
refute_requirement_equal "= 1.2", "= 1.3"
refute_requirement_equal "= 1.3", "= 1.2"
refute_requirement_equal "~> 1.3", "~> 1.3.0"
refute_requirement_equal "~> 1.3.0", "~> 1.3"
assert_requirement_equal ["> 2", "~> 1.3"], ["> 2.0", "~> 1.3"]
assert_requirement_equal ["> 2.0", "~> 1.3"], ["> 2", "~> 1.3"]
refute_equal Object.new, req("= 1.2")
refute_equal req("= 1.2"), Object.new
end