From e45d17b9d24d3d70eb974f52a6e981b212f47f6c Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 8 Aug 2010 07:22:07 +0000 Subject: [PATCH] * 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 --- ChangeLog | 8 +++++++- lib/rubygems.rb | 11 +++++------ lib/rubygems/gem_path_searcher.rb | 4 ++-- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 36a3292561..8667ecdc54 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,10 @@ -Sun Aug 8 16:08:51 2010 Nobuyoshi Nakada +Sun Aug 8 16:22:04 2010 Nobuyoshi Nakada + + * 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. diff --git a/lib/rubygems.rb b/lib/rubygems.rb index 552c6f6b57..25da9d9cf8 100644 --- a/lib/rubygems.rb +++ b/lib/rubygems.rb @@ -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 diff --git a/lib/rubygems/gem_path_searcher.rb b/lib/rubygems/gem_path_searcher.rb index 6ee3c078d5..a745b0291c 100644 --- a/lib/rubygems/gem_path_searcher.rb +++ b/lib/rubygems/gem_path_searcher.rb @@ -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 ##