rdoc 6.2.1 → 6.3.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rdoc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/rdoc.rb +21 -0
- data/lib/rdoc/any_method.rb +52 -7
- data/lib/rdoc/context.rb +10 -2
- data/lib/rdoc/context/section.rb +0 -13
- data/lib/rdoc/cross_reference.rb +2 -2
- data/lib/rdoc/erb_partial.rb +1 -1
- data/lib/rdoc/erbio.rb +2 -2
- data/lib/rdoc/generator/darkfish.rb +3 -3
- data/lib/rdoc/generator/pot.rb +3 -3
- data/lib/rdoc/generator/template/darkfish/_head.rhtml +4 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +7 -7
- data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +7 -7
- data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +6 -6
- data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
- data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +4 -4
- data/lib/rdoc/generator/template/darkfish/class.rhtml +44 -44
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +1 -1
- data/lib/rdoc/generator/template/darkfish/index.rhtml +3 -4
- data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +15 -16
- data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +16 -16
- data/lib/rdoc/i18n.rb +1 -1
- data/lib/rdoc/markdown.kpeg +1 -1
- data/lib/rdoc/markdown.rb +1 -1
- data/lib/rdoc/markup/formatter.rb +1 -1
- data/lib/rdoc/markup/pre_process.rb +1 -1
- data/lib/rdoc/markup/to_html.rb +19 -6
- data/lib/rdoc/markup/to_html_crossref.rb +13 -5
- data/lib/rdoc/options.rb +1 -1
- data/lib/rdoc/parser.rb +7 -7
- data/lib/rdoc/parser/c.rb +24 -58
- data/lib/rdoc/rd/block_parser.rb +1 -1
- data/lib/rdoc/rd/inline_parser.rb +1 -1
- data/lib/rdoc/rdoc.rb +26 -20
- data/lib/rdoc/ri/driver.rb +9 -5
- data/lib/rdoc/ri/paths.rb +3 -17
- data/lib/rdoc/ri/task.rb +1 -1
- data/lib/rdoc/rubygems_hook.rb +2 -2
- data/lib/rdoc/servlet.rb +6 -1
- data/lib/rdoc/store.rb +2 -2
- data/lib/rdoc/version.rb +1 -1
- data/man/ri.1 +247 -0
- data/rdoc.gemspec +1 -1
- metadata +7 -6
data/lib/rdoc/options.rb
CHANGED
@@ -755,7 +755,7 @@ Usage: #{opt.program_name} [options] [names...]
|
|
755
755
|
|
756
756
|
opt.on("--[no-]force-update", "-U",
|
757
757
|
"Forces rdoc to scan all sources even if",
|
758
|
-
"newer than the flag file.") do |value|
|
758
|
+
"no files are newer than the flag file.") do |value|
|
759
759
|
@force_update = value
|
760
760
|
end
|
761
761
|
|
data/lib/rdoc/parser.rb
CHANGED
@@ -78,7 +78,7 @@ class RDoc::Parser
|
|
78
78
|
|
79
79
|
return true if s[0, 2] == Marshal.dump('')[0, 2] or s.index("\x00")
|
80
80
|
|
81
|
-
mode = 'r:utf-8' # default source encoding has been
|
81
|
+
mode = 'r:utf-8' # default source encoding has been changed to utf-8
|
82
82
|
s.sub!(/\A#!.*\n/, '') # assume shebang line isn't longer than 1024.
|
83
83
|
encoding = s[/^\s*\#\s*(?:-\*-\s*)?(?:en)?coding:\s*([^\s;]+?)(?:-\*-|[\s;])/, 1]
|
84
84
|
mode = "rb:#{encoding}" if encoding
|
@@ -269,9 +269,9 @@ class RDoc::Parser
|
|
269
269
|
end
|
270
270
|
|
271
271
|
# simple must come first in order to show up last in the parsers list
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
272
|
+
require_relative 'parser/simple'
|
273
|
+
require_relative 'parser/c'
|
274
|
+
require_relative 'parser/changelog'
|
275
|
+
require_relative 'parser/markdown'
|
276
|
+
require_relative 'parser/rd'
|
277
|
+
require_relative 'parser/ruby'
|
data/lib/rdoc/parser/c.rb
CHANGED
@@ -209,48 +209,6 @@ class RDoc::Parser::C < RDoc::Parser
|
|
209
209
|
end
|
210
210
|
end
|
211
211
|
|
212
|
-
##
|
213
|
-
# Removes duplicate call-seq entries for methods using the same
|
214
|
-
# implementation.
|
215
|
-
|
216
|
-
def deduplicate_call_seq
|
217
|
-
@methods.each do |var_name, functions|
|
218
|
-
class_name = @known_classes[var_name]
|
219
|
-
next unless class_name
|
220
|
-
class_obj = find_class var_name, class_name
|
221
|
-
|
222
|
-
functions.each_value do |method_names|
|
223
|
-
next if method_names.length == 1
|
224
|
-
|
225
|
-
method_names.each do |method_name|
|
226
|
-
deduplicate_method_name class_obj, method_name
|
227
|
-
end
|
228
|
-
end
|
229
|
-
end
|
230
|
-
end
|
231
|
-
|
232
|
-
##
|
233
|
-
# If two ruby methods share a C implementation (and comment) this
|
234
|
-
# deduplicates the examples in the call_seq for the method to reduce
|
235
|
-
# confusion in the output.
|
236
|
-
|
237
|
-
def deduplicate_method_name class_obj, method_name # :nodoc:
|
238
|
-
return unless
|
239
|
-
method = class_obj.method_list.find { |m| m.name == method_name }
|
240
|
-
return unless call_seq = method.call_seq
|
241
|
-
|
242
|
-
method_name = method_name[0, 1] if method_name =~ /\A\[/
|
243
|
-
|
244
|
-
entries = call_seq.split "\n"
|
245
|
-
|
246
|
-
matching = entries.select do |entry|
|
247
|
-
entry =~ /^\w*\.?#{Regexp.escape method_name}/ or
|
248
|
-
entry =~ /\s#{Regexp.escape method_name}\s/
|
249
|
-
end
|
250
|
-
|
251
|
-
method.call_seq = matching.join "\n"
|
252
|
-
end
|
253
|
-
|
254
212
|
##
|
255
213
|
# Scans #content for rb_define_alias
|
256
214
|
|
@@ -269,23 +227,29 @@ class RDoc::Parser::C < RDoc::Parser
|
|
269
227
|
end
|
270
228
|
|
271
229
|
class_obj = find_class var_name, class_name
|
272
|
-
|
273
|
-
al = RDoc::Alias.new '', old_name, new_name, ''
|
274
|
-
al.singleton = @singleton_classes.key? var_name
|
275
|
-
|
276
230
|
comment = find_alias_comment var_name, new_name, old_name
|
277
|
-
|
278
231
|
comment.normalize
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
class_obj.add_alias al
|
285
|
-
@stats.add_alias al
|
232
|
+
if comment.to_s.empty? and existing_method = class_obj.method_list.find { |m| m.name == old_name}
|
233
|
+
comment = existing_method.comment
|
234
|
+
end
|
235
|
+
add_alias(var_name, class_obj, old_name, new_name, comment)
|
286
236
|
end
|
287
237
|
end
|
288
238
|
|
239
|
+
##
|
240
|
+
# Add alias, either from a direct alias definition, or from two
|
241
|
+
# method that reference the same function.
|
242
|
+
|
243
|
+
def add_alias(var_name, class_obj, old_name, new_name, comment)
|
244
|
+
al = RDoc::Alias.new '', old_name, new_name, ''
|
245
|
+
al.singleton = @singleton_classes.key? var_name
|
246
|
+
al.comment = comment
|
247
|
+
al.record_location @top_level
|
248
|
+
class_obj.add_alias al
|
249
|
+
@stats.add_alias al
|
250
|
+
al
|
251
|
+
end
|
252
|
+
|
289
253
|
##
|
290
254
|
# Scans #content for rb_attr and rb_define_attr
|
291
255
|
|
@@ -354,7 +318,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
354
318
|
\s*"(?<module_name_1>\w+)"\s*
|
355
319
|
\)
|
356
320
|
|
|
357
|
-
_under\s*\( # rb_define_module_under(module_under,
|
321
|
+
_under\s*\( # rb_define_module_under(module_under, module_name_2)
|
358
322
|
\s*(?<module_under>\w+),
|
359
323
|
\s*"(?<module_name_2>\w+)"
|
360
324
|
\s*\)
|
@@ -608,7 +572,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
608
572
|
((?>/\*.*?\*/\s*)?)
|
609
573
|
((?:(?:\w+)\s+)?
|
610
574
|
(?:intern\s+)?VALUE\s+(\w+)
|
611
|
-
\s*(?:\([^)]*\))(?:[
|
575
|
+
\s*(?:\([^)]*\))(?:[^\);]|$))
|
612
576
|
| ((?>/\*.*?\*/\s*))^\s*(\#\s*define\s+(\w+)\s+(\w+))
|
613
577
|
| ^\s*\#\s*define\s+(\w+)\s+(\w+)
|
614
578
|
}xm) do
|
@@ -1021,6 +985,10 @@ class RDoc::Parser::C < RDoc::Parser
|
|
1021
985
|
|
1022
986
|
class_obj = find_class var_name, class_name
|
1023
987
|
|
988
|
+
if existing_method = class_obj.method_list.find { |m| m.c_function == function }
|
989
|
+
add_alias(var_name, class_obj, existing_method.name, meth_name, existing_method.comment)
|
990
|
+
end
|
991
|
+
|
1024
992
|
if class_obj then
|
1025
993
|
if meth_name == 'initialize' then
|
1026
994
|
meth_name = 'new'
|
@@ -1249,8 +1217,6 @@ class RDoc::Parser::C < RDoc::Parser
|
|
1249
1217
|
do_aliases
|
1250
1218
|
do_attrs
|
1251
1219
|
|
1252
|
-
deduplicate_call_seq
|
1253
|
-
|
1254
1220
|
@store.add_c_variables self
|
1255
1221
|
|
1256
1222
|
@top_level
|
data/lib/rdoc/rd/block_parser.rb
CHANGED
data/lib/rdoc/rdoc.rb
CHANGED
@@ -112,11 +112,17 @@ class RDoc::RDoc
|
|
112
112
|
|
113
113
|
file_list = normalized_file_list files, true, @options.exclude
|
114
114
|
|
115
|
-
file_list = file_list
|
116
|
-
|
117
|
-
file_list
|
118
|
-
|
119
|
-
|
115
|
+
file_list = remove_unparseable(file_list)
|
116
|
+
|
117
|
+
if file_list.count {|name, mtime|
|
118
|
+
file_list[name] = @last_modified[name] unless mtime
|
119
|
+
mtime
|
120
|
+
} > 0
|
121
|
+
@last_modified.replace file_list
|
122
|
+
file_list.keys.sort
|
123
|
+
else
|
124
|
+
[]
|
125
|
+
end
|
120
126
|
end
|
121
127
|
|
122
128
|
##
|
@@ -254,11 +260,11 @@ option)
|
|
254
260
|
# read and strip comments
|
255
261
|
patterns = File.read(filename).gsub(/#.*/, '')
|
256
262
|
|
257
|
-
result =
|
263
|
+
result = {}
|
258
264
|
|
259
|
-
patterns.split.each do |patt|
|
265
|
+
patterns.split(' ').each do |patt|
|
260
266
|
candidates = Dir.glob(File.join(in_dir, patt))
|
261
|
-
result.
|
267
|
+
result.update normalized_file_list(candidates, false, @options.exclude)
|
262
268
|
end
|
263
269
|
|
264
270
|
result
|
@@ -278,21 +284,21 @@ option)
|
|
278
284
|
|
279
285
|
def normalized_file_list(relative_files, force_doc = false,
|
280
286
|
exclude_pattern = nil)
|
281
|
-
file_list =
|
287
|
+
file_list = {}
|
282
288
|
|
283
289
|
relative_files.each do |rel_file_name|
|
290
|
+
rel_file_name = rel_file_name.sub(/^\.\//, '')
|
284
291
|
next if rel_file_name.end_with? 'created.rid'
|
285
292
|
next if exclude_pattern && exclude_pattern =~ rel_file_name
|
286
293
|
stat = File.stat rel_file_name rescue next
|
287
294
|
|
288
295
|
case type = stat.ftype
|
289
296
|
when "file" then
|
290
|
-
|
291
|
-
|
297
|
+
mtime = (stat.mtime unless (last_modified = @last_modified[rel_file_name] and
|
298
|
+
stat.mtime.to_i <= last_modified.to_i))
|
292
299
|
|
293
300
|
if force_doc or RDoc::Parser.can_parse(rel_file_name) then
|
294
|
-
file_list
|
295
|
-
@last_modified[rel_file_name] = stat.mtime
|
301
|
+
file_list[rel_file_name] = mtime
|
296
302
|
end
|
297
303
|
when "directory" then
|
298
304
|
next if rel_file_name == "CVS" || rel_file_name == ".svn"
|
@@ -303,16 +309,16 @@ option)
|
|
303
309
|
dot_doc = File.join rel_file_name, RDoc::DOT_DOC_FILENAME
|
304
310
|
|
305
311
|
if File.file? dot_doc then
|
306
|
-
file_list
|
312
|
+
file_list.update(parse_dot_doc_file(rel_file_name, dot_doc))
|
307
313
|
else
|
308
|
-
file_list
|
314
|
+
file_list.update(list_files_in_directory(rel_file_name))
|
309
315
|
end
|
310
316
|
else
|
311
317
|
warn "rdoc can't parse the #{type} #{rel_file_name}"
|
312
318
|
end
|
313
319
|
end
|
314
320
|
|
315
|
-
file_list
|
321
|
+
file_list
|
316
322
|
end
|
317
323
|
|
318
324
|
##
|
@@ -427,7 +433,7 @@ The internal error was:
|
|
427
433
|
# files for emacs and vim.
|
428
434
|
|
429
435
|
def remove_unparseable files
|
430
|
-
files.reject do |file
|
436
|
+
files.reject do |file, *|
|
431
437
|
file =~ /\.(?:class|eps|erb|scpt\.txt|svg|ttf|yml)$/i or
|
432
438
|
(file =~ /tags$/i and
|
433
439
|
open(file, 'rb') { |io|
|
@@ -561,6 +567,6 @@ rescue LoadError
|
|
561
567
|
end
|
562
568
|
|
563
569
|
# require built-in generators after discovery in case they've been replaced
|
564
|
-
|
565
|
-
|
566
|
-
|
570
|
+
require_relative 'generator/darkfish'
|
571
|
+
require_relative 'generator/ri'
|
572
|
+
require_relative 'generator/pot'
|
data/lib/rdoc/ri/driver.rb
CHANGED
@@ -17,7 +17,7 @@ require 'rdoc'
|
|
17
17
|
##
|
18
18
|
# For RubyGems backwards compatibility
|
19
19
|
|
20
|
-
|
20
|
+
require_relative 'formatter'
|
21
21
|
|
22
22
|
##
|
23
23
|
# The RI driver implements the command-line ri tool.
|
@@ -356,7 +356,7 @@ or the PAGER environment variable.
|
|
356
356
|
end
|
357
357
|
end
|
358
358
|
|
359
|
-
argv = ENV['RI'].to_s.split.concat argv
|
359
|
+
argv = ENV['RI'].to_s.split(' ').concat argv
|
360
360
|
|
361
361
|
opts.parse! argv
|
362
362
|
|
@@ -1228,7 +1228,7 @@ or the PAGER environment variable.
|
|
1228
1228
|
# +cache+ indicate if it is a class or instance method.
|
1229
1229
|
|
1230
1230
|
def load_method store, cache, klass, type, name
|
1231
|
-
methods = store.
|
1231
|
+
methods = store.public_send(cache)[klass]
|
1232
1232
|
|
1233
1233
|
return unless methods
|
1234
1234
|
|
@@ -1521,7 +1521,7 @@ or the PAGER environment variable.
|
|
1521
1521
|
pagers.compact.uniq.each do |pager|
|
1522
1522
|
next unless pager
|
1523
1523
|
|
1524
|
-
pager_cmd = pager.split.first
|
1524
|
+
pager_cmd = pager.split(' ').first
|
1525
1525
|
|
1526
1526
|
next unless in_path? pager_cmd
|
1527
1527
|
|
@@ -1551,7 +1551,11 @@ or the PAGER environment variable.
|
|
1551
1551
|
# Starts a WEBrick server for ri.
|
1552
1552
|
|
1553
1553
|
def start_server
|
1554
|
-
|
1554
|
+
begin
|
1555
|
+
require 'webrick'
|
1556
|
+
rescue LoadError
|
1557
|
+
abort "webrick is not found. You may need to `gem install webrick` to install webrick."
|
1558
|
+
end
|
1555
1559
|
|
1556
1560
|
server = WEBrick::HTTPServer.new :Port => @server
|
1557
1561
|
|
data/lib/rdoc/ri/paths.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
2
|
+
require_relative '../rdoc'
|
3
3
|
|
4
4
|
##
|
5
5
|
# The directories where ri data lives. Paths can be enumerated via ::each, or
|
@@ -12,23 +12,9 @@ module RDoc::RI::Paths
|
|
12
12
|
|
13
13
|
version = RbConfig::CONFIG['ruby_version']
|
14
14
|
|
15
|
-
BASE =
|
16
|
-
File.join RbConfig::CONFIG['ridir'], version
|
17
|
-
else
|
18
|
-
File.join RbConfig::CONFIG['datadir'], 'ri', version
|
19
|
-
end
|
15
|
+
BASE = File.join RbConfig::CONFIG['ridir'], version
|
20
16
|
|
21
|
-
|
22
|
-
File.expand_path('~')
|
23
|
-
rescue ArgumentError
|
24
|
-
end
|
25
|
-
|
26
|
-
homedir ||= ENV['HOME'] ||
|
27
|
-
ENV['USERPROFILE'] || ENV['HOMEPATH'] # for 1.8 compatibility
|
28
|
-
|
29
|
-
HOMEDIR = if homedir then
|
30
|
-
File.join homedir, ".rdoc"
|
31
|
-
end
|
17
|
+
HOMEDIR = RDoc.home
|
32
18
|
#:startdoc:
|
33
19
|
|
34
20
|
##
|
data/lib/rdoc/ri/task.rb
CHANGED
data/lib/rdoc/rubygems_hook.rb
CHANGED
@@ -70,7 +70,7 @@ class RDoc::RubygemsHook
|
|
70
70
|
def self.load_rdoc
|
71
71
|
return if @rdoc_version
|
72
72
|
|
73
|
-
|
73
|
+
require_relative 'rdoc'
|
74
74
|
|
75
75
|
@rdoc_version = Gem::Version.new ::RDoc::VERSION
|
76
76
|
end
|
@@ -158,7 +158,7 @@ class RDoc::RubygemsHook
|
|
158
158
|
|
159
159
|
case config_args = Gem.configuration[:rdoc]
|
160
160
|
when String then
|
161
|
-
args = args.concat config_args.split
|
161
|
+
args = args.concat config_args.split(' ')
|
162
162
|
when Array then
|
163
163
|
args = args.concat config_args
|
164
164
|
end
|
data/lib/rdoc/servlet.rb
CHANGED
@@ -3,7 +3,12 @@ require 'rdoc'
|
|
3
3
|
require 'erb'
|
4
4
|
require 'time'
|
5
5
|
require 'json'
|
6
|
-
|
6
|
+
|
7
|
+
begin
|
8
|
+
require 'webrick'
|
9
|
+
rescue LoadError
|
10
|
+
abort "webrick is not found. You may need to `gem install webrick` to install webrick."
|
11
|
+
end
|
7
12
|
|
8
13
|
##
|
9
14
|
# This is a WEBrick servlet that allows you to browse ri documentation.
|
data/lib/rdoc/store.rb
CHANGED
@@ -482,7 +482,7 @@ class RDoc::Store
|
|
482
482
|
when :gem then
|
483
483
|
parent = File.expand_path '..', @path
|
484
484
|
"gem #{File.basename parent}"
|
485
|
-
when :home then
|
485
|
+
when :home then RDoc.home
|
486
486
|
when :site then 'ruby site'
|
487
487
|
when :system then 'ruby core'
|
488
488
|
else @path
|
@@ -723,7 +723,7 @@ class RDoc::Store
|
|
723
723
|
|
724
724
|
def page name
|
725
725
|
@text_files_hash.each_value.find do |file|
|
726
|
-
file.page_name == name
|
726
|
+
file.page_name == name or file.base_name == name
|
727
727
|
end
|
728
728
|
end
|
729
729
|
|
data/lib/rdoc/version.rb
CHANGED
data/man/ri.1
ADDED
@@ -0,0 +1,247 @@
|
|
1
|
+
.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>.
|
2
|
+
.Dd April 20, 2017
|
3
|
+
.Dt RI \&1 "Ruby Programmer's Reference Guide"
|
4
|
+
.Os UNIX
|
5
|
+
.Sh NAME
|
6
|
+
.Nm ri
|
7
|
+
.Nd Ruby API reference front end
|
8
|
+
.Sh SYNOPSIS
|
9
|
+
.Nm
|
10
|
+
.Op Fl ahilTv
|
11
|
+
.Op Fl d Ar DIRNAME
|
12
|
+
.Op Fl f Ar FORMAT
|
13
|
+
.Op Fl w Ar WIDTH
|
14
|
+
.Op Fl - Ns Oo Cm no- Oc Ns Cm pager
|
15
|
+
.Op Fl -server Ns Oo = Ns Ar PORT Oc
|
16
|
+
.Op Fl - Ns Oo Cm no- Oc Ns Cm list-doc-dirs
|
17
|
+
.Op Fl -no-standard-docs
|
18
|
+
.Op Fl - Ns Oo Cm no- Oc Ns Bro Cm system Ns | Ns Cm site Ns | Ns Cm gems Ns | Ns Cm home Brc
|
19
|
+
.Op Fl - Ns Oo Cm no- Oc Ns Cm profile
|
20
|
+
.Op Fl -dump Ns = Ns Ar CACHE
|
21
|
+
.Op Ar name ...
|
22
|
+
.Sh DESCRIPTION
|
23
|
+
.Nm
|
24
|
+
is a command-line front end for the Ruby API reference.
|
25
|
+
You can search and read the API reference for classes and methods with
|
26
|
+
.Nm .
|
27
|
+
.Pp
|
28
|
+
.Nm
|
29
|
+
is a part of Ruby.
|
30
|
+
.Pp
|
31
|
+
.Ar name
|
32
|
+
can be:
|
33
|
+
.Bl -diag -offset indent
|
34
|
+
.It Class | Module | Module::Class
|
35
|
+
.Pp
|
36
|
+
.It Class::method | Class#method | Class.method | method
|
37
|
+
.Pp
|
38
|
+
.It gem_name: | gem_name:README | gem_name:History
|
39
|
+
.El
|
40
|
+
.Pp
|
41
|
+
All class names may be abbreviated to their minimum unambiguous form.
|
42
|
+
If a name is ambiguous, all valid options will be listed.
|
43
|
+
.Pp
|
44
|
+
A
|
45
|
+
.Ql \&.
|
46
|
+
matches either class or instance methods, while #method
|
47
|
+
matches only instance and ::method matches only class methods.
|
48
|
+
.Pp
|
49
|
+
README and other files may be displayed by prefixing them with the gem name
|
50
|
+
they're contained in. If the gem name is followed by a
|
51
|
+
.Ql \&:
|
52
|
+
all files in the gem will be shown.
|
53
|
+
The file name extension may be omitted where it is unambiguous.
|
54
|
+
.Pp
|
55
|
+
For example:
|
56
|
+
.Bd -literal -offset indent
|
57
|
+
ri Fil
|
58
|
+
ri File
|
59
|
+
ri File.new
|
60
|
+
ri zip
|
61
|
+
ri rdoc:README
|
62
|
+
.Ed
|
63
|
+
.Pp
|
64
|
+
Note that shell quoting or escaping may be required for method names
|
65
|
+
containing punctuation:
|
66
|
+
.Bd -literal -offset indent
|
67
|
+
ri 'Array.[]'
|
68
|
+
ri compact\e!
|
69
|
+
.Ed
|
70
|
+
.Pp
|
71
|
+
To see the default directories
|
72
|
+
.Nm
|
73
|
+
will search, run:
|
74
|
+
.Bd -literal -offset indent
|
75
|
+
ri --list-doc-dirs
|
76
|
+
.Ed
|
77
|
+
.Pp
|
78
|
+
Specifying the
|
79
|
+
.Fl -system , Fl -site , Fl -home , Fl -gems ,
|
80
|
+
or
|
81
|
+
.Fl -doc-dir
|
82
|
+
options will limit
|
83
|
+
.Nm
|
84
|
+
to searching only the specified directories.
|
85
|
+
.Pp
|
86
|
+
.Nm
|
87
|
+
options may be set in the
|
88
|
+
.Ev RI
|
89
|
+
environment variable.
|
90
|
+
.Pp
|
91
|
+
The
|
92
|
+
.Nm
|
93
|
+
pager can be set with the
|
94
|
+
.Ev RI_PAGER
|
95
|
+
environment variable or the
|
96
|
+
.Ev PAGER
|
97
|
+
environment variable.
|
98
|
+
.Pp
|
99
|
+
.Sh OPTIONS
|
100
|
+
.Bl -tag -width "1234567890123" -compact
|
101
|
+
.Pp
|
102
|
+
.It Fl i
|
103
|
+
.It Fl - Ns Oo Cm no- Oc Ns Cm interactive
|
104
|
+
In interactive mode you can repeatedly
|
105
|
+
look up methods with autocomplete.
|
106
|
+
.Pp
|
107
|
+
.It Fl a
|
108
|
+
.It Fl - Ns Oo Cm no- Oc Ns Cm all
|
109
|
+
Show all documentation for a class or module.
|
110
|
+
.Pp
|
111
|
+
.It Fl l
|
112
|
+
.It Fl - Ns Oo Cm no- Oc Ns Cm list
|
113
|
+
List classes
|
114
|
+
.Nm
|
115
|
+
knows about.
|
116
|
+
.Pp
|
117
|
+
.It Fl - Ns Oo Cm no- Oc Ns Cm pager
|
118
|
+
Send output to a pager,
|
119
|
+
rather than directly to stdout.
|
120
|
+
.Pp
|
121
|
+
.It Fl T
|
122
|
+
Synonym for
|
123
|
+
.Fl -no-pager .
|
124
|
+
.Pp
|
125
|
+
.It Fl w Ar WIDTH
|
126
|
+
.It Fl -width Ns = Ns Ar WIDTH
|
127
|
+
Set the width of the output.
|
128
|
+
.Pp
|
129
|
+
.It Fl -server Ns Oo = Ns Ar PORT Oc
|
130
|
+
Run RDoc server on the given port.
|
131
|
+
The default port is\~8214.
|
132
|
+
.Pp
|
133
|
+
.It Fl f Ar FORMAT
|
134
|
+
.It Fl -format Ns = Ns Ar FORMAT
|
135
|
+
Use the selected formatter.
|
136
|
+
The default formatter is
|
137
|
+
.Li bs
|
138
|
+
for paged output and
|
139
|
+
.Li ansi
|
140
|
+
otherwise.
|
141
|
+
Valid formatters are:
|
142
|
+
.Li ansi , Li bs , Li markdown , Li rdoc .
|
143
|
+
.Pp
|
144
|
+
.It Fl h
|
145
|
+
.It Fl -help
|
146
|
+
Show help and exit.
|
147
|
+
.Pp
|
148
|
+
.It Fl v
|
149
|
+
.It Fl -version
|
150
|
+
Output version information and exit.
|
151
|
+
.El
|
152
|
+
.Pp
|
153
|
+
Data source options:
|
154
|
+
.Bl -tag -width "1234567890123" -compact
|
155
|
+
.Pp
|
156
|
+
.It Fl - Ns Oo Cm no- Oc Ns Cm list-doc-dirs
|
157
|
+
List the directories from which
|
158
|
+
.Nm
|
159
|
+
will source documentation on stdout and exit.
|
160
|
+
.Pp
|
161
|
+
.It Fl d Ar DIRNAME
|
162
|
+
.It Fl -doc-dir Ns = Ns Ar DIRNAME
|
163
|
+
List of directories from which to source
|
164
|
+
documentation in addition to the standard
|
165
|
+
directories. May be repeated.
|
166
|
+
.Pp
|
167
|
+
.It Fl -no-standard-docs
|
168
|
+
Do not include documentation from the Ruby standard library,
|
169
|
+
.Pa site_lib ,
|
170
|
+
installed gems, or
|
171
|
+
.Pa ~/.rdoc .
|
172
|
+
Use with
|
173
|
+
.Fl -doc-dir .
|
174
|
+
.Pp
|
175
|
+
.It Fl - Ns Oo Cm no- Oc Ns Cm system
|
176
|
+
Include documentation from Ruby's standard library. Defaults to true.
|
177
|
+
.Pp
|
178
|
+
.It Fl - Ns Oo Cm no- Oc Ns Cm site
|
179
|
+
Include documentation from libraries installed in
|
180
|
+
.Pa site_lib .
|
181
|
+
Defaults to true.
|
182
|
+
.Pp
|
183
|
+
.It Fl - Ns Oo Cm no- Oc Ns Cm gems
|
184
|
+
Include documentation from RubyGems. Defaults to true.
|
185
|
+
.Pp
|
186
|
+
.It Fl - Ns Oo Cm no- Oc Ns Cm home
|
187
|
+
Include documentation stored in
|
188
|
+
.Pa ~/.rdoc .
|
189
|
+
Defaults to true.
|
190
|
+
.El
|
191
|
+
.Pp
|
192
|
+
Debug options:
|
193
|
+
.Bl -tag -width "1234567890123" -compact
|
194
|
+
.Pp
|
195
|
+
.It Fl - Ns Oo Cm no- Oc Ns Cm profile
|
196
|
+
Run with the Ruby profiler.
|
197
|
+
.Pp
|
198
|
+
.It Fl -dump Ns = Ns Ar CACHE
|
199
|
+
Dump data from an ri cache or data file.
|
200
|
+
.El
|
201
|
+
.Pp
|
202
|
+
.Sh ENVIRONMENT
|
203
|
+
.Bl -tag -width "USERPROFILE" -compact
|
204
|
+
.Pp
|
205
|
+
.It Ev RI
|
206
|
+
Options to prepend to those specified on the command-line.
|
207
|
+
.Pp
|
208
|
+
.It Ev RI_PAGER
|
209
|
+
.It Ev PAGER
|
210
|
+
Pager program to use for displaying.
|
211
|
+
.Pp
|
212
|
+
.It Ev HOME
|
213
|
+
.It Ev USERPROFILE
|
214
|
+
.It Ev HOMEPATH
|
215
|
+
Path to the user's home directory.
|
216
|
+
.El
|
217
|
+
.Pp
|
218
|
+
.Sh FILES
|
219
|
+
.Bl -tag -width "USERPROFILE" -compact
|
220
|
+
.Pp
|
221
|
+
.It Pa ~/.rdoc
|
222
|
+
Path for ri data in the user's home directory.
|
223
|
+
.Pp
|
224
|
+
.El
|
225
|
+
.Pp
|
226
|
+
.Sh SEE ALSO
|
227
|
+
.Xr ruby 1 ,
|
228
|
+
.Xr rdoc 1 ,
|
229
|
+
.Xr gem 1
|
230
|
+
.Pp
|
231
|
+
.Sh REPORTING BUGS
|
232
|
+
.Bl -bullet
|
233
|
+
.It
|
234
|
+
Security vulnerabilities should be reported via an email to
|
235
|
+
.Mt security@ruby-lang.org .
|
236
|
+
Reported problems will be published after being fixed.
|
237
|
+
.Pp
|
238
|
+
.It
|
239
|
+
Other bugs and feature requests can be reported via the
|
240
|
+
Ruby Issue Tracking System
|
241
|
+
.Pq Lk https://bugs.ruby-lang.org/ .
|
242
|
+
Do not report security vulnerabilities
|
243
|
+
via this system because it publishes the vulnerabilities immediately.
|
244
|
+
.El
|
245
|
+
.Sh AUTHORS
|
246
|
+
Written by
|
247
|
+
.An Dave Thomas Aq dave@pragmaticprogrammer.com .
|