diff options
Diffstat (limited to 'lib/rubygems/path_support.rb')
-rw-r--r-- | lib/rubygems/path_support.rb | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/rubygems/path_support.rb b/lib/rubygems/path_support.rb index 618bc793c4..02332cef80 100644 --- a/lib/rubygems/path_support.rb +++ b/lib/rubygems/path_support.rb @@ -23,12 +23,14 @@ class Gem::PathSupport # hashtable, or defaults to ENV, the system environment. # def initialize(env) - @home = env["GEM_HOME"] || Gem.default_dir + @home = env["GEM_HOME"] || Gem.default_dir if File::ALT_SEPARATOR then - @home = @home.gsub(File::ALT_SEPARATOR, File::SEPARATOR) + @home = @home.gsub(File::ALT_SEPARATOR, File::SEPARATOR) end + @home = expand(@home) + @path = split_gem_path env["GEM_PATH"], @home @spec_cache_dir = env["GEM_SPEC_CACHE"] || Gem.default_spec_cache_dir @@ -65,7 +67,7 @@ class Gem::PathSupport gem_path = default_path end - gem_path.uniq + gem_path.map { |path| expand(path) }.uniq end # Return the default Gem path @@ -77,4 +79,12 @@ class Gem::PathSupport end gem_path end + + def expand(path) + if File.directory?(path) + File.realpath(path) + else + path + end + end end |