зеркало из https://github.com/github/ruby.git
* lib/rubygems: Update to RubyGems HEAD(e53c54a).
* test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
30253e6a24
Коммит
07b87cd239
|
@ -1,3 +1,8 @@
|
|||
Fri Jan 9 23:20:04 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
|
||||
|
||||
* lib/rubygems: Update to RubyGems HEAD(e53c54a).
|
||||
* test/rubygems: ditto.
|
||||
|
||||
Fri Jan 9 11:13:01 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* parse.y (assocs, assoc): eliminate splatting empty literal
|
||||
|
|
|
@ -61,8 +61,7 @@ class Gem::BasicSpecification
|
|||
@contains_requirable_file ||= {}
|
||||
@contains_requirable_file[file] ||=
|
||||
begin
|
||||
if instance_variable_defined?(:@ignored) or
|
||||
instance_variable_defined?('@ignored') then
|
||||
if instance_variable_defined?(:@ignored) then
|
||||
return false
|
||||
elsif missing_extensions? then
|
||||
@ignored = true
|
||||
|
|
|
@ -176,7 +176,7 @@ dependencies file.:
|
|||
Ruby Version and Engine Dependency
|
||||
==================================
|
||||
|
||||
You can specifiy the version, engine and engine version of ruby to use with
|
||||
You can specify the version, engine and engine version of ruby to use with
|
||||
your gem dependencies file. If you are not running the specified version
|
||||
RubyGems will raise an exception.
|
||||
|
||||
|
@ -223,7 +223,7 @@ The #group method can also be used to place gems in groups:
|
|||
The #group method allows multiple groups.
|
||||
|
||||
The #gemspec development dependencies are placed in the :development group by
|
||||
default. This may be overriden with the :development_group option:
|
||||
default. This may be overridden with the :development_group option:
|
||||
|
||||
gemspec development_group: :other
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ via the webhooks. If you accidentally pushed passwords or other sensitive
|
|||
data you will need to change them immediately and yank your gem.
|
||||
|
||||
If you are yanking a gem due to intellectual property reasons contact
|
||||
http://help.rubygems.org for permanant removal. Be sure to mention this
|
||||
http://help.rubygems.org for permanent removal. Be sure to mention this
|
||||
as the reason for the removal request.
|
||||
EOF
|
||||
end
|
||||
|
|
|
@ -218,7 +218,17 @@ class Gem::DependencyInstaller
|
|||
tuples, errors = Gem::SpecFetcher.fetcher.search_for_dependency dep
|
||||
|
||||
if best_only && !tuples.empty?
|
||||
tuples.sort! { |a,b| b[0].version <=> a[0].version }
|
||||
tuples.sort! do |a,b|
|
||||
if b[0].version == a[0].version
|
||||
if b[0].platform != Gem::Platform::RUBY
|
||||
1
|
||||
else
|
||||
-1
|
||||
end
|
||||
else
|
||||
b[0].version <=> a[0].version
|
||||
end
|
||||
end
|
||||
tuples = [tuples.first]
|
||||
end
|
||||
|
||||
|
|
|
@ -42,13 +42,6 @@ class Gem::PathSupport
|
|||
|
||||
private
|
||||
|
||||
##
|
||||
# Set the Gem home directory (as reported by Gem.dir).
|
||||
|
||||
def home=(home)
|
||||
@home = home.to_s
|
||||
end
|
||||
|
||||
##
|
||||
# Set the Gem search path (as reported by Gem.path).
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# This exists just to satify bugs in marshal'd gemspecs that
|
||||
# This exists just to satisfy bugs in marshal'd gemspecs that
|
||||
# contain a reference to YAML::PrivateType. We prune these out
|
||||
# in Specification._load, but if we don't have the constant, Marshal
|
||||
# blows up.
|
||||
|
|
|
@ -103,7 +103,7 @@ class Gem::RemoteFetcher
|
|||
# filename. Returns nil if the gem cannot be located.
|
||||
#--
|
||||
# Should probably be integrated with #download below, but that will be a
|
||||
# larger, more emcompassing effort. -erikh
|
||||
# larger, more encompassing effort. -erikh
|
||||
|
||||
def download_to_cache dependency
|
||||
found, _ = Gem::SpecFetcher.fetcher.spec_for_dependency dependency
|
||||
|
|
|
@ -122,7 +122,7 @@ class Gem::Security::Signer
|
|||
# ~/.gem/gem-public_cert.pem.expired.%Y%m%d%H%M%S
|
||||
#
|
||||
# If the signing certificate can be re-signed the expired certificate will
|
||||
# be saved as ~/.gem/gem-pubilc_cert.pem.expired.%Y%m%d%H%M%S where the
|
||||
# be saved as ~/.gem/gem-public_cert.pem.expired.%Y%m%d%H%M%S where the
|
||||
# expiry time (not after) is used for the timestamp.
|
||||
|
||||
def re_sign_key # :nodoc:
|
||||
|
|
|
@ -1932,7 +1932,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|||
# Singular accessor for #licenses
|
||||
|
||||
def license
|
||||
val = licenses and val.first
|
||||
licenses.first
|
||||
end
|
||||
|
||||
##
|
||||
|
|
|
@ -1145,7 +1145,7 @@ class TestGem < Gem::TestCase
|
|||
]
|
||||
|
||||
tests.each do |_name, _paths, expected|
|
||||
Gem.paths = { 'GEM_HOME' => _paths.first, 'GEM_PATH' => _paths }
|
||||
Gem.use_paths _paths.first, _paths
|
||||
Gem::Specification.reset
|
||||
Gem.searcher = nil
|
||||
|
||||
|
@ -1192,10 +1192,7 @@ class TestGem < Gem::TestCase
|
|||
install_gem m, :install_dir => Gem.dir
|
||||
install_gem m, :install_dir => Gem.user_dir
|
||||
|
||||
Gem.paths = {
|
||||
'GEM_HOME' => Gem.dir,
|
||||
'GEM_PATH' => [ Gem.dir, Gem.user_dir]
|
||||
}
|
||||
Gem.use_paths Gem.dir, [ Gem.dir, Gem.user_dir]
|
||||
|
||||
assert_equal \
|
||||
File.join(Gem.dir, "gems", "m-1"),
|
||||
|
|
|
@ -231,7 +231,7 @@ class TestGemCommandsPristineCommand < Gem::TestCase
|
|||
|
||||
Gem.clear_paths
|
||||
gemhome2 = File.join @tempdir, 'gemhome2'
|
||||
Gem.paths = { "GEM_PATH" => [gemhome2, @gemhome], "GEM_HOME" => gemhome2 }
|
||||
Gem.use_paths gemhome2, [gemhome2, @gemhome]
|
||||
|
||||
b = util_spec 'b'
|
||||
install_gem b
|
||||
|
@ -301,7 +301,7 @@ class TestGemCommandsPristineCommand < Gem::TestCase
|
|||
|
||||
Gem.clear_paths
|
||||
gemhome2 = File.join(@tempdir, 'gemhome2')
|
||||
Gem.paths = { "GEM_PATH" => [gemhome2, @gemhome], "GEM_HOME" => gemhome2 }
|
||||
Gem.use_paths gemhome2, [gemhome2, @gemhome]
|
||||
|
||||
install_gem specs["b-1"]
|
||||
FileUtils.rm File.join(gemhome2, 'cache', 'b-1.gem')
|
||||
|
|
|
@ -66,7 +66,7 @@ class TestGemCommandsUnpackCommand < Gem::TestCase
|
|||
|
||||
gemhome2 = File.join @tempdir, 'gemhome2'
|
||||
|
||||
Gem.paths = { "GEM_PATH" => [gemhome2, @gemhome], "GEM_HOME" => gemhome2 }
|
||||
Gem.use_paths gemhome2, [gemhome2, @gemhome]
|
||||
|
||||
@cmd.options[:args] = %w[a]
|
||||
|
||||
|
@ -86,7 +86,7 @@ class TestGemCommandsUnpackCommand < Gem::TestCase
|
|||
|
||||
gemhome2 = File.join @tempdir, 'gemhome2'
|
||||
|
||||
Gem.paths = { "GEM_PATH" => [gemhome2, @gemhome], "GEM_HOME" => gemhome2 }
|
||||
Gem.use_paths gemhome2, [gemhome2, @gemhome]
|
||||
|
||||
@cmd.options[:args] = %w[z]
|
||||
|
||||
|
|
|
@ -14,6 +14,14 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|||
FileUtils.mkdir @gems_dir
|
||||
|
||||
Gem::RemoteFetcher.fetcher = @fetcher = Gem::FakeFetcher.new
|
||||
|
||||
@original_platforms = Gem.platforms
|
||||
Gem.platforms = []
|
||||
end
|
||||
|
||||
def teardown
|
||||
Gem.platforms = @original_platforms
|
||||
super
|
||||
end
|
||||
|
||||
def util_setup_gems
|
||||
|
@ -272,7 +280,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|||
# This asserts that if a gem's dependency is satisfied by an
|
||||
# already installed gem, RubyGems doesn't installed a newer
|
||||
# version
|
||||
def test_install_doesnt_upgrade_installed_depedencies
|
||||
def test_install_doesnt_upgrade_installed_dependencies
|
||||
util_setup_gems
|
||||
|
||||
a2, a2_gem = util_gem 'a', '2'
|
||||
|
@ -1084,6 +1092,24 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|||
assert_equal [@a1_pre, @a1], prereleases
|
||||
end
|
||||
|
||||
def test_find_gems_with_sources_with_best_only_and_platform
|
||||
util_setup_gems
|
||||
a1_x86_mingw32, = util_gem 'a', '1' do |s|
|
||||
s.platform = 'x86-mingw32'
|
||||
end
|
||||
util_setup_spec_fetcher @a1, a1_x86_mingw32
|
||||
Gem.platforms << Gem::Platform.new('x86-mingw32')
|
||||
|
||||
installer = Gem::DependencyInstaller.new
|
||||
|
||||
dependency = Gem::Dependency.new('a', Gem::Requirement.default)
|
||||
|
||||
releases =
|
||||
installer.find_gems_with_sources(dependency, true).all_specs
|
||||
|
||||
assert_equal [a1_x86_mingw32], releases
|
||||
end
|
||||
|
||||
def test_find_gems_with_sources_with_bad_source
|
||||
Gem.sources.replace ["http://not-there.nothing"]
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ class TestGemExtCmakeBuilder < Gem::TestCase
|
|||
def test_self_build
|
||||
File.open File.join(@ext, 'CMakeLists.txt'), 'w' do |cmakelists|
|
||||
cmakelists.write <<-eo_cmake
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
install (FILES test.txt DESTINATION bin)
|
||||
eo_cmake
|
||||
end
|
||||
|
|
|
@ -319,7 +319,7 @@ gem 'other', version
|
|||
|
||||
options = {
|
||||
:bin_dir => bin_dir,
|
||||
:install_dir => "/non/existant"
|
||||
:install_dir => "/non/existent"
|
||||
}
|
||||
|
||||
inst = Gem::Installer.new '', options
|
||||
|
|
|
@ -298,7 +298,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|||
assert_equal %w[lib/code.rb], reader.contents
|
||||
end
|
||||
|
||||
def test_build_signed_encryped_key
|
||||
def test_build_signed_encrypted_key
|
||||
skip 'openssl is missing' unless defined?(OpenSSL::SSL)
|
||||
|
||||
spec = Gem::Specification.new 'build', '1'
|
||||
|
|
|
@ -385,7 +385,7 @@ create_makefile '#{@spec.name}'
|
|||
assert_match %r!Successfully uninstalled q-1!, lines.last
|
||||
end
|
||||
|
||||
def test_uninstall_only_lists_unsatified_deps
|
||||
def test_uninstall_only_lists_unsatisfied_deps
|
||||
quick_gem 'r', '1' do |s| s.add_dependency 'q', '~> 1.0' end
|
||||
quick_gem 'x', '1' do |s| s.add_dependency 'q', '= 1.0' end
|
||||
quick_gem 'q', '1.0'
|
||||
|
@ -409,7 +409,7 @@ create_makefile '#{@spec.name}'
|
|||
assert_match %r!Successfully uninstalled q-1.0!, lines.last
|
||||
end
|
||||
|
||||
def test_uninstall_doesnt_prompt_when_other_gem_satifies_requirement
|
||||
def test_uninstall_doesnt_prompt_when_other_gem_satisfies_requirement
|
||||
quick_gem 'r', '1' do |s| s.add_dependency 'q', '~> 1.0' end
|
||||
quick_gem 'q', '1.0'
|
||||
quick_gem 'q', '1.1'
|
||||
|
|
Загрузка…
Ссылка в новой задаче