diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-10-01 08:30:21 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-10-01 08:30:21 +0000 |
commit | cec4f5a9e02751404fd1408b6d81078f409b750d (patch) | |
tree | e0269284018921fa6a8c32dc007c819075d50cfd /lib | |
parent | ffe920d674857087037327dc4075cd0c7e8e9fd1 (diff) | |
download | ruby-cec4f5a9e02751404fd1408b6d81078f409b750d.tar.gz |
* lib/rubygems: Update to RubyGems 2.4.2.
* test/rubygems: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rubygems.rb | 2 | ||||
-rw-r--r-- | lib/rubygems/commands/update_command.rb | 5 | ||||
-rw-r--r-- | lib/rubygems/installer.rb | 6 | ||||
-rw-r--r-- | lib/rubygems/request_set.rb | 42 | ||||
-rw-r--r-- | lib/rubygems/request_set/gem_dependency_api.rb | 9 | ||||
-rw-r--r-- | lib/rubygems/request_set/lockfile.rb | 8 | ||||
-rw-r--r-- | lib/rubygems/source/git.rb | 10 |
7 files changed, 74 insertions, 8 deletions
diff --git a/lib/rubygems.rb b/lib/rubygems.rb index 453520665a..ac22c3cdce 100644 --- a/lib/rubygems.rb +++ b/lib/rubygems.rb @@ -9,7 +9,7 @@ require 'rbconfig' require 'thread' module Gem - VERSION = '2.4.1' + VERSION = '2.4.2' end # Must be first since it unloads the prelude from 1.9.2 diff --git a/lib/rubygems/commands/update_command.rb b/lib/rubygems/commands/update_command.rb index 9e9bd088f2..b132089612 100644 --- a/lib/rubygems/commands/update_command.rb +++ b/lib/rubygems/commands/update_command.rb @@ -203,7 +203,10 @@ command to remove old versions. def update_gem name, version = Gem::Requirement.default return if @updated.any? { |spec| spec.name == name } - @installer ||= Gem::DependencyInstaller.new options + update_options = options.dup + update_options[:prerelease] = version.prerelease? + + @installer = Gem::DependencyInstaller.new update_options say "Updating #{name}" begin diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb index e5cfc0f536..d497ba5c05 100644 --- a/lib/rubygems/installer.rb +++ b/lib/rubygems/installer.rb @@ -681,14 +681,14 @@ TEXT # return the stub script text used to launch the true Ruby script def windows_stub_script(bindir, bin_file_name) - ruby = File.basename(Gem.ruby).chomp('"') + ruby = Gem.ruby.chomp('"').tr(File::SEPARATOR, "\\") return <<-TEXT @ECHO OFF IF NOT "%~f0" == "~f0" GOTO :WinNT -@"#{bindir.tr(File::SEPARATOR, File::ALT_SEPARATOR)}\\#{ruby}" "#{File.join(bindir, bin_file_name)}" %1 %2 %3 %4 %5 %6 %7 %8 %9 +@"#{ruby}" "#{File.join(bindir, bin_file_name)}" %1 %2 %3 %4 %5 %6 %7 %8 %9 GOTO :EOF :WinNT -@"%~dp0#{ruby}" "%~dpn0" %* +@"#{ruby}" "%~dpn0" %* TEXT end diff --git a/lib/rubygems/request_set.rb b/lib/rubygems/request_set.rb index d12e06358d..57f9c39ba9 100644 --- a/lib/rubygems/request_set.rb +++ b/lib/rubygems/request_set.rb @@ -284,6 +284,48 @@ class Gem::RequestSet gf.load end + def pretty_print q # :nodoc: + q.group 2, '[RequestSet:', ']' do + q.breakable + + if @remote then + q.text 'remote' + q.breakable + end + + if @prerelease then + q.text 'prerelease' + q.breakable + end + + if @development_shallow then + q.text 'shallow development' + q.breakable + elsif @development then + q.text 'development' + q.breakable + end + + if @soft_missing then + q.text 'soft missing' + end + + q.group 2, '[dependencies:', ']' do + q.breakable + @dependencies.map do |dep| + q.text dep.to_s + q.breakable + end + end + + q.breakable + q.text 'sets:' + + q.breakable + q.pp @sets.map { |set| set.class } + end + end + ## # Resolve the requested dependencies and return an Array of Specification # objects to be activated. diff --git a/lib/rubygems/request_set/gem_dependency_api.rb b/lib/rubygems/request_set/gem_dependency_api.rb index 24179dd1ed..9aad5ab5d3 100644 --- a/lib/rubygems/request_set/gem_dependency_api.rb +++ b/lib/rubygems/request_set/gem_dependency_api.rb @@ -596,8 +596,17 @@ Gem dependencies file #{@path} requires #{name} more than once. groups = gem_group spec.name, {} + self_dep = Gem::Dependency.new spec.name, spec.version + + add_dependencies groups, [self_dep] add_dependencies groups, spec.runtime_dependencies + @dependencies[spec.name] = '!' + + spec.dependencies.each do |dep| + @dependencies[dep.name] = dep.requirement + end + groups << development_group add_dependencies groups, spec.development_dependencies diff --git a/lib/rubygems/request_set/lockfile.rb b/lib/rubygems/request_set/lockfile.rb index 2901dba871..918aa971e5 100644 --- a/lib/rubygems/request_set/lockfile.rb +++ b/lib/rubygems/request_set/lockfile.rb @@ -168,8 +168,12 @@ class Gem::RequestSet::Lockfile dest = File.expand_path(dest) base = File.expand_path(base) - if dest.index(base) == 0 - return dest[base.size+1..-1] + if dest.index(base) == 0 then + offset = dest[base.size+1..-1] + + return '.' unless offset + + offset else dest end diff --git a/lib/rubygems/source/git.rb b/lib/rubygems/source/git.rb index fb9cbce2fb..35c2270a74 100644 --- a/lib/rubygems/source/git.rb +++ b/lib/rubygems/source/git.rb @@ -178,9 +178,17 @@ class Gem::Source::Git < Gem::Source # Converts the git reference for the repository into a commit hash. def rev_parse # :nodoc: + hash = nil + Dir.chdir repo_cache_dir do - Gem::Util.popen(@git, 'rev-parse', @reference).strip + hash = Gem::Util.popen(@git, 'rev-parse', @reference).strip end + + raise Gem::Exception, + "unable to find reference #{@reference} in #{@repository}" unless + $?.success? + + hash end ## |