Module: RDoc::RI::Paths
- Defined in:
- lib/rdoc/ri/paths.rb
Overview
The directories where ri data lives.
Constant Summary
- SYSDIR =
File.join base, "system"
- SITEDIR =
File.join base, "site"
- HOMEDIR =
if homedir then File.join homedir, ".rdoc" end
Class Method Summary (collapse)
-
+ (Object) each(system, site, home, gems, *extra_dirs) {|SYSDIR, :system| ... }
Iterates over each selected path yielding the directory and type.
-
+ (Object) gemdirs
The latest installed gems' ri directories.
-
+ (Object) path(system, site, home, gems, *extra_dirs)
Returns existing directories from the selected documentation directories as an Array.
-
+ (Object) raw_path(system, site, home, gems, *extra_dirs)
Returns selected documentation directories including nonexistent directories.
Class Method Details
+ (Object) each(system, site, home, gems, *extra_dirs) {|SYSDIR, :system| ... }
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 |
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/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 |
+ (Object) gemdirs
The latest installed gems' ri directories
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/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 |
+ (Object) path(system, site, home, gems, *extra_dirs)
Returns existing directories from the selected documentation directories as an Array.
See also ::each
105 106 107 108 109 |
# File 'lib/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 |
+ (Object) raw_path(system, site, home, gems, *extra_dirs)
Returns selected documentation directories including nonexistent directories.
See also ::each
117 118 119 120 121 122 123 124 125 |
# File 'lib/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 |