diff --git a/ChangeLog b/ChangeLog index 1bb4435dbb..c92a439182 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Jan 9 23:20:04 2015 SHIBATA Hiroshi + + * lib/rubygems: Update to RubyGems HEAD(e53c54a). + * test/rubygems: ditto. + Fri Jan 9 11:13:01 2015 Nobuyoshi Nakada * parse.y (assocs, assoc): eliminate splatting empty literal diff --git a/lib/rubygems/basic_specification.rb b/lib/rubygems/basic_specification.rb index f5fb0f5d97..d1cee4f36d 100644 --- a/lib/rubygems/basic_specification.rb +++ b/lib/rubygems/basic_specification.rb @@ -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 diff --git a/lib/rubygems/commands/help_command.rb b/lib/rubygems/commands/help_command.rb index ed81ad6e25..955ceb929f 100644 --- a/lib/rubygems/commands/help_command.rb +++ b/lib/rubygems/commands/help_command.rb @@ -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 diff --git a/lib/rubygems/commands/yank_command.rb b/lib/rubygems/commands/yank_command.rb index 3c7859e763..c05ee66283 100644 --- a/lib/rubygems/commands/yank_command.rb +++ b/lib/rubygems/commands/yank_command.rb @@ -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 diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb index 039d046da2..9741554360 100644 --- a/lib/rubygems/dependency_installer.rb +++ b/lib/rubygems/dependency_installer.rb @@ -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 diff --git a/lib/rubygems/path_support.rb b/lib/rubygems/path_support.rb index 2af303eecf..e68654c428 100644 --- a/lib/rubygems/path_support.rb +++ b/lib/rubygems/path_support.rb @@ -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). diff --git a/lib/rubygems/psych_additions.rb b/lib/rubygems/psych_additions.rb index 0e4ebbd50c..08fc04c90d 100644 --- a/lib/rubygems/psych_additions.rb +++ b/lib/rubygems/psych_additions.rb @@ -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. diff --git a/lib/rubygems/remote_fetcher.rb b/lib/rubygems/remote_fetcher.rb index d42a7bd9de..da1febbe86 100644 --- a/lib/rubygems/remote_fetcher.rb +++ b/lib/rubygems/remote_fetcher.rb @@ -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 diff --git a/lib/rubygems/security/signer.rb b/lib/rubygems/security/signer.rb index bb1eae7cf2..fbee240f29 100644 --- a/lib/rubygems/security/signer.rb +++ b/lib/rubygems/security/signer.rb @@ -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: diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb index ab1cd92270..631bb7a0d3 100644 --- a/lib/rubygems/specification.rb +++ b/lib/rubygems/specification.rb @@ -1932,7 +1932,7 @@ class Gem::Specification < Gem::BasicSpecification # Singular accessor for #licenses def license - val = licenses and val.first + licenses.first end ## diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb index 47f57abf81..0428bea213 100644 --- a/test/rubygems/test_gem.rb +++ b/test/rubygems/test_gem.rb @@ -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"), diff --git a/test/rubygems/test_gem_commands_pristine_command.rb b/test/rubygems/test_gem_commands_pristine_command.rb index 554d503811..38e00bb1cc 100644 --- a/test/rubygems/test_gem_commands_pristine_command.rb +++ b/test/rubygems/test_gem_commands_pristine_command.rb @@ -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') diff --git a/test/rubygems/test_gem_commands_unpack_command.rb b/test/rubygems/test_gem_commands_unpack_command.rb index 59f6cc6c74..9264b3fc13 100644 --- a/test/rubygems/test_gem_commands_unpack_command.rb +++ b/test/rubygems/test_gem_commands_unpack_command.rb @@ -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] diff --git a/test/rubygems/test_gem_dependency_installer.rb b/test/rubygems/test_gem_dependency_installer.rb index 8a0470761e..82640068e4 100644 --- a/test/rubygems/test_gem_dependency_installer.rb +++ b/test/rubygems/test_gem_dependency_installer.rb @@ -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"] diff --git a/test/rubygems/test_gem_ext_cmake_builder.rb b/test/rubygems/test_gem_ext_cmake_builder.rb index aaece6868b..a36be476be 100644 --- a/test/rubygems/test_gem_ext_cmake_builder.rb +++ b/test/rubygems/test_gem_ext_cmake_builder.rb @@ -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 diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb index 6f8012feb8..701fda15d4 100644 --- a/test/rubygems/test_gem_installer.rb +++ b/test/rubygems/test_gem_installer.rb @@ -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 diff --git a/test/rubygems/test_gem_package.rb b/test/rubygems/test_gem_package.rb index 128dcdb1c4..9d9c224349 100644 --- a/test/rubygems/test_gem_package.rb +++ b/test/rubygems/test_gem_package.rb @@ -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' diff --git a/test/rubygems/test_gem_uninstaller.rb b/test/rubygems/test_gem_uninstaller.rb index 2a9a15d5b1..774fbe5ae8 100644 --- a/test/rubygems/test_gem_uninstaller.rb +++ b/test/rubygems/test_gem_uninstaller.rb @@ -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'