From 952beb5ff4a866a012fb646bf598ae112acdfb82 Mon Sep 17 00:00:00 2001 From: usa Date: Fri, 30 Nov 2012 16:27:52 +0000 Subject: * lib/rubygems/command.rb (Gem::Command#get_all_gem_names_and_versions): who assumes that the pathname of a gem never contains ':' ? yes, on Unixen pathnames can contain ':', and on Windows they almost certainly contain ':'. see [ruby-core:50388]. * lib/rubygems/requirement.rb (Gem::Requirement::PATTERN_RAW): extract the regexp to match the version specifier from PATTERN to use in above method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rubygems/command.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'lib/rubygems/command.rb') diff --git a/lib/rubygems/command.rb b/lib/rubygems/command.rb index 69cbf3c269..cba79b9196 100644 --- a/lib/rubygems/command.rb +++ b/lib/rubygems/command.rb @@ -5,6 +5,7 @@ #++ require 'optparse' +require 'rubygems/requirement' require 'rubygems/user_interaction' ## @@ -186,7 +187,13 @@ class Gem::Command # An argument in the form gem:ver is pull apart into the gen name and version, # respectively. def get_all_gem_names_and_versions - get_all_gem_names.map { |name| name.split(":", 2) } + get_all_gem_names.map do |name| + if /\A(.*):(#{Gem::Requirement::PATTERN_RAW})\z/ =~ name + [$1, $2] + else + [name] + end + end end ## -- cgit v1.2.3