* lib/rubygems.rb (Gem.find_files): fixed search order same as

default behavior.

* lib/rubygems/gem_path_searcher.rb (matching_files): check if
  exist, not globbing.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2010-08-08 07:22:07 +00:00
Родитель efbad5fa48
Коммит e45d17b9d2
3 изменённых файлов: 14 добавлений и 9 удалений

Просмотреть файл

@ -1,4 +1,10 @@
Sun Aug 8 16:08:51 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
Sun Aug 8 16:22:04 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/rubygems.rb (Gem.find_files): fixed search order same as
default behavior.
* lib/rubygems/gem_path_searcher.rb (matching_files): check if
exist, not globbing.
* gem_prelude.rb, lib/rubygems.rb (Gem.suffixes): return truely
require-able suffixes only.

Просмотреть файл

@ -473,12 +473,11 @@ module Gem
# versions of the same gem.
def self.find_files(path)
load_path_files = $LOAD_PATH.map do |load_path|
files = Dir["#{File.expand_path path, load_path}#{Gem.suffix_pattern}"]
files.select do |load_path_file|
File.file? load_path_file.untaint
end
suffixes.map do |sfx|
base = path + sfx
load_path_files = $LOAD_PATH.map {|load_path|
File.expand_path(base, load_path)
}.select {|f| File.file?(f.untaint)}
end.flatten
specs = searcher.find_all path

Просмотреть файл

@ -69,8 +69,8 @@ class Gem::GemPathSearcher
def matching_files(spec, path)
return [] unless @lib_dirs[spec.object_id] # case no paths
glob = File.join @lib_dirs[spec.object_id], "#{path}#{Gem.suffix_pattern}"
Dir[glob].select { |f| File.file? f.untaint }
load_path = File.join(@lib_dirs[spec.object_id], path)
Gem.suffixes.map {|sfx| load_path + sfx}.select {|f| File.file?(f.untaint)}
end
##