summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--lib/rubygems.rb11
-rw-r--r--lib/rubygems/gem_path_searcher.rb4
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 <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.
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
##