module RDoc::RI::Paths

def self.gemdirs

def self.gemdirs
  return @gemdirs if @gemdirs
  require 'rubygems' unless defined?(Gem)
  # 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
  @gemdirs = ri_paths.map { |k,v| v.last }.sort
rescue LoadError
  @gemdirs = []
end