Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more

In Files

  • rdoc/ri/paths.rb

Class/Module Index [+]

Quicksearch

RDoc::RI::Paths

The directories where ri data lives.

Public Class Methods

each(system, site, home, gems, *extra_dirs) click to toggle source

Iterates over each selected path yielding the directory and type.

Yielded types:

:system

Where Ruby’s ri data is stored. Yielded when system is true

:site

Where ri for installed libraries are stored. Yielded when site is true. Normally no ri data is stored here.

:home

~/.rdoc. Yielded when home is true.

:gem

ri data for an installed gem. Yielded when gems is true.

:extra

ri data directory from the command line. Yielded for each entry in extra_dirs

 
               # File rdoc/ri/paths.rb, line 50
def self.each system, site, home, gems, *extra_dirs # :yields: directory, type
  extra_dirs.each do |dir|
    yield dir, :extra
  end

  yield SYSDIR,  :system if system
  yield SITEDIR, :site   if site
  yield HOMEDIR, :home   if home and HOMEDIR

  gemdirs.each do |dir|
    yield dir, :gem
  end if gems

  nil
end
            
gemdirs() click to toggle source

The latest installed gems’ ri directories

 
               # File rdoc/ri/paths.rb, line 69
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
            
path(system, site, home, gems, *extra_dirs) click to toggle source

Returns existing directories from the selected documentation directories as an Array.

See also ::each

 
               # File rdoc/ri/paths.rb, line 105
def self.path(system, site, home, gems, *extra_dirs)
  path = raw_path system, site, home, gems, *extra_dirs

  path.select { |directory| File.directory? directory }
end
            
raw_path(system, site, home, gems, *extra_dirs) click to toggle source

Returns selected documentation directories including nonexistent directories.

See also ::each

 
               # File rdoc/ri/paths.rb, line 117
def self.raw_path(system, site, home, gems, *extra_dirs)
  path = []

  each(system, site, home, gems, *extra_dirs) do |dir, type|
    path << dir
  end

  path.compact
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.