ruby-changes:32283
From: naruse <ko1@a...>
Date: Mon, 23 Dec 2013 16:13:28 +0900 (JST)
Subject: [ruby-changes:32283] naruse:r44362 (ruby_2_1): merge revision(s) 44333: [Backport #9282]
naruse 2013-12-23 16:13:17 +0900 (Mon, 23 Dec 2013) New Revision: 44362 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=44362 Log: merge revision(s) 44333: [Backport #9282] * lib/rubygems/commands/install_command.rb: Restore gem install --ignore-dependencies for remote gems * test/rubygems/test_gem_commands_install_command.rb: Test for the above. Modified directories: branches/ruby_2_1/ Modified files: branches/ruby_2_1/ChangeLog branches/ruby_2_1/lib/rubygems/commands/install_command.rb branches/ruby_2_1/test/rubygems/test_gem_commands_install_command.rb Index: ruby_2_1/ChangeLog =================================================================== --- ruby_2_1/ChangeLog (revision 44361) +++ ruby_2_1/ChangeLog (revision 44362) @@ -1,3 +1,10 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ChangeLog#L1 +Mon Dec 23 16:13:10 2013 Eric Hodel <drbrain@s...> + + * lib/rubygems/commands/install_command.rb: Restore gem install + --ignore-dependencies for remote gems + * test/rubygems/test_gem_commands_install_command.rb: Test for the + above. + Mon Dec 23 16:12:24 2013 Marc-Andre Lafortune <ruby-core@m...> * array.c: Have to_h raise on elements that are not key-value pairs Index: ruby_2_1/lib/rubygems/commands/install_command.rb =================================================================== --- ruby_2_1/lib/rubygems/commands/install_command.rb (revision 44361) +++ ruby_2_1/lib/rubygems/commands/install_command.rb (revision 44362) @@ -69,7 +69,7 @@ class Gem::Commands::InstallCommand < Ge https://github.com/ruby/ruby/blob/trunk/ruby_2_1/lib/rubygems/commands/install_command.rb#L69 o[:explain] = v end - @installed_specs = nil + @installed_specs = [] end def arguments # :nodoc: @@ -200,10 +200,8 @@ to write the specification by hand. For https://github.com/ruby/ruby/blob/trunk/ruby_2_1/lib/rubygems/commands/install_command.rb#L200 req = Gem::Requirement.create(version) - if options[:ignore_dependencies] - inst = Gem::Installer.new name, options - inst.install - @installed_specs.push(inst.spec) + if options[:ignore_dependencies] then + install_gem_without_dependencies name, req else inst = Gem::DependencyInstaller.new options @@ -227,6 +225,30 @@ to write the specification by hand. For https://github.com/ruby/ruby/blob/trunk/ruby_2_1/lib/rubygems/commands/install_command.rb#L225 end end + def install_gem_without_dependencies name, req # :nodoc: + gem = nil + + if remote? then + dependency = Gem::Dependency.new name, req + dependency.prerelease = options[:prerelease] + + fetcher = Gem::RemoteFetcher.fetcher + gem = fetcher.download_to_cache dependency + end + + if local? and not gem then + source = Gem::Source::Local.new + spec = source.find_gem name, req + + gem = source.download spec + end + + inst = Gem::Installer.new gem, options + inst.install + + @installed_specs.push(inst.spec) + end + def install_gems # :nodoc: exit_code = 0 Index: ruby_2_1/test/rubygems/test_gem_commands_install_command.rb =================================================================== --- ruby_2_1/test/rubygems/test_gem_commands_install_command.rb (revision 44361) +++ ruby_2_1/test/rubygems/test_gem_commands_install_command.rb (revision 44362) @@ -533,6 +533,32 @@ ERROR: Possible alternatives: non_exist https://github.com/ruby/ruby/blob/trunk/ruby_2_1/test/rubygems/test_gem_commands_install_command.rb#L533 assert_match "1 gem installed", @ui.output end + def test_install_gem_ignore_dependencies_both + spec = quick_spec 'a', 2 + + util_build_gem spec + + FileUtils.mv spec.cache_file, @tempdir + + @cmd.options[:ignore_dependencies] = true + + @cmd.install_gem 'a', '>= 0' + + assert_equal %w[a-2], @cmd.installed_specs.map { |s| s.full_name } + end + + def test_install_gem_ignore_dependencies_remote + spec_fetcher do |fetcher| + fetcher.gem 'a', 2 + end + + @cmd.options[:ignore_dependencies] = true + + @cmd.install_gem 'a', '>= 0' + + assert_equal %w[a-2], @cmd.installed_specs.map { |spec| spec.full_name } + end + def test_parses_requirement_from_gemname spec_fetcher do |fetcher| fetcher.gem 'a', 2 Property changes on: ruby_2_1 ___________________________________________________________________ Modified: svn:mergeinfo Merged /trunk:r44333 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/