mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Fix display of GEMDIRS, make command command examples match ri's name.
Only allow latest ri dirs in ri output. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
42a523fc9b
commit
7c92ab16a9
3 changed files with 50 additions and 20 deletions
|
@ -1,4 +1,11 @@
|
|||
Mon Dec 24 10:49:04 2007
|
||||
Mon Dec 24 11:20:31 2007 Eric Hodel <drbrain@segment7.net>
|
||||
|
||||
* lib/rdoc/ri/ri_options.rb: Fix display of GEMDIRS, make command
|
||||
examples match ri's name.
|
||||
|
||||
* lib/rdoc/ri/ri_paths.rb: Only allow latest ri dirs in ri output.
|
||||
|
||||
Mon Dec 24 10:49:04 2007 Eric Hodel <drbrain@segment7.net>
|
||||
|
||||
* lib/uri/mailto.rb, lib/uri/common.rb: Fix Regexp warnings. Patch
|
||||
#16524 from Kornelius Kalnbach, [ruby-core:14302].
|
||||
|
|
|
@ -62,9 +62,10 @@ module RI
|
|||
(RI::Paths::HOMEDIR || "No ~/.rdoc found") ],
|
||||
|
||||
[ "--gems", nil, nil,
|
||||
"Include documentation from Rubygems:\n " +
|
||||
(RI::Paths::GEMDIRS ? "#{Gem.path}/doc/*/ri" :
|
||||
"No Rubygems ri found.") ],
|
||||
"Include documentation from RubyGems:\n " +
|
||||
(RI::Paths::GEMDIRS ?
|
||||
Gem.path.map { |dir| "#{dir}/doc/*/ri" }.join("\n") :
|
||||
"No Rubygems ri found.") ],
|
||||
|
||||
[ "--format", "-f", "<name>",
|
||||
"Format to use when displaying output:\n" +
|
||||
|
@ -116,7 +117,8 @@ module RI
|
|||
def OptionList.error(msg)
|
||||
$stderr.puts
|
||||
$stderr.puts msg
|
||||
$stderr.puts "\nFor help on options, try 'ri --help'\n\n"
|
||||
name = File.basename $PROGRAM_NAME
|
||||
$stderr.puts "\nFor help on options, try '#{name} --help'\n\n"
|
||||
exit 1
|
||||
end
|
||||
|
||||
|
@ -136,7 +138,11 @@ module RI
|
|||
RI::Paths::HOMEDIR
|
||||
]
|
||||
|
||||
directories << "#{Gem.path}/doc/*/ri" if RI::Paths::GEMDIRS
|
||||
if RI::Paths::GEMDIRS then
|
||||
Gem.path.each do |dir|
|
||||
directories << "#{dir}/doc/*/ri"
|
||||
end
|
||||
end
|
||||
|
||||
directories = directories.join("\n ")
|
||||
|
||||
|
@ -157,16 +163,16 @@ module RI
|
|||
|
||||
For example:
|
||||
|
||||
ri File
|
||||
ri File.new
|
||||
ri F.n
|
||||
ri zip
|
||||
#{name} File
|
||||
#{name} File.new
|
||||
#{name} F.n
|
||||
#{name} zip
|
||||
|
||||
Note that shell quoting may be required for method names
|
||||
containing punctuation:
|
||||
|
||||
ri 'Array.[]'
|
||||
ri compact\\!
|
||||
#{name} 'Array.[]'
|
||||
#{name} compact\\!
|
||||
|
||||
By default ri searches for documentation in the following
|
||||
directories:
|
||||
|
@ -180,8 +186,8 @@ module RI
|
|||
EOT
|
||||
|
||||
if short_form
|
||||
puts "For help on options, type 'ri -h'"
|
||||
puts "For a list of classes I know about, type 'ri -c'"
|
||||
puts "For help on options, type '#{name} -h'"
|
||||
puts "For a list of classes I know about, type '#{name} -c'"
|
||||
else
|
||||
puts "Options:\n\n"
|
||||
OPTION_LIST.each do|long, short, arg, desc|
|
||||
|
|
|
@ -42,14 +42,31 @@ module RI
|
|||
# This is the search path for 'ri'
|
||||
PATH = [ SYSDIR, SITEDIR, HOMEDIR ].find_all {|p| p && File.directory?(p)}
|
||||
|
||||
begin
|
||||
require 'rubygems'
|
||||
GEMDIRS = Dir["#{Gem.path}/doc/*/ri"]
|
||||
GEMDIRS.each { |path| RI::Paths::PATH << path }
|
||||
rescue LoadError
|
||||
GEMDIRS = nil
|
||||
require 'rubygems'
|
||||
|
||||
# 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
|
||||
GEMDIRS.each { |dir| RI::Paths::PATH << dir }
|
||||
|
||||
# Returns the selected documentation directories as an Array, or PATH if no
|
||||
# overriding directories were given.
|
||||
|
||||
|
|
Loading…
Reference in a new issue