diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-02-12 01:17:39 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-02-12 01:17:39 +0000 |
commit | 0ecb56f170ab590d079659c82c7a4673d30cb51d (patch) | |
tree | 4fe13b304a8d24370d29ac1e0e7d7144acc47168 /lib/rdoc/ri/paths.rb | |
parent | 0472db84c5e2b3e4e8f253cb304d5360de2a6a4a (diff) |
Restore require rubygems check
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rdoc/ri/paths.rb')
-rw-r--r-- | lib/rdoc/ri/paths.rb | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/lib/rdoc/ri/paths.rb b/lib/rdoc/ri/paths.rb index aba9b6f69e..035d0fc242 100644 --- a/lib/rdoc/ri/paths.rb +++ b/lib/rdoc/ri/paths.rb @@ -42,30 +42,34 @@ module RDoc::RI::Paths # This is the search path for 'ri' PATH = [ SYSDIR, SITEDIR, HOMEDIR ].find_all {|p| p && File.directory?(p)} - require 'rubygems' unless defined?(Gem) and Gem::Enable - - # HACK dup'd from Gem.latest_partials and friends - all_paths = [] - - all_paths = Gem.path.map do |dir| - Dir[File.join(dir, 'doc', '*', 'ri')] - end.flatten - - ri_paths = {} - - all_paths.each do |dir| - base = File.basename File.dirname(dir) - if base =~ /(.*)-((\d+\.)*\d+)/ then - name, version = $1, $2 - ver = Gem::Version.new version - if ri_paths[name].nil? or ver > ri_paths[name][0] then - ri_paths[name] = [ver, dir] + begin + require 'rubygems' unless defined?(Gem) and Gem::Enable + + # HACK dup'd from Gem.latest_partials and friends + all_paths = [] + + all_paths = Gem.path.map do |dir| + Dir[File.join(dir, 'doc', '*', 'ri')] + end.flatten + + ri_paths = {} + + all_paths.each do |dir| + base = File.basename File.dirname(dir) + if base =~ /(.*)-((\d+\.)*\d+)/ then + name, version = $1, $2 + ver = Gem::Version.new version + if ri_paths[name].nil? or ver > ri_paths[name][0] then + ri_paths[name] = [ver, dir] + end end end - end - GEMDIRS = ri_paths.map { |k,v| v.last }.sort - GEMDIRS.each { |dir| PATH << dir } + GEMDIRS = ri_paths.map { |k,v| v.last }.sort + GEMDIRS.each { |dir| PATH << dir } + rescue LoadError + GEMDIRS = [] + end # Returns the selected documentation directories as an Array, or PATH if no # overriding directories were given. |