rdoc 7.2.0 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +4 -7
  3. data/LICENSE.rdoc +4 -0
  4. data/README.md +43 -2
  5. data/RI.md +75 -75
  6. data/doc/markup_reference/markdown.md +104 -3
  7. data/exe/rdoc +2 -2
  8. data/lib/rdoc/code_object/alias.rb +70 -74
  9. data/lib/rdoc/code_object/any_method.rb +305 -298
  10. data/lib/rdoc/code_object/attr.rb +150 -143
  11. data/lib/rdoc/code_object/class_module.rb +801 -765
  12. data/lib/rdoc/code_object/constant.rb +178 -150
  13. data/lib/rdoc/code_object/context/section.rb +133 -160
  14. data/lib/rdoc/code_object/context.rb +925 -952
  15. data/lib/rdoc/code_object/extend.rb +7 -5
  16. data/lib/rdoc/code_object/include.rb +7 -5
  17. data/lib/rdoc/code_object/method_attr.rb +325 -324
  18. data/lib/rdoc/code_object/mixin.rb +97 -95
  19. data/lib/rdoc/code_object/normal_class.rb +77 -78
  20. data/lib/rdoc/code_object/normal_module.rb +61 -59
  21. data/lib/rdoc/code_object/require.rb +23 -39
  22. data/lib/rdoc/code_object/single_class.rb +21 -19
  23. data/lib/rdoc/code_object/top_level.rb +212 -213
  24. data/lib/rdoc/code_object.rb +305 -305
  25. data/lib/rdoc/comment.rb +274 -337
  26. data/lib/rdoc/cross_reference.rb +194 -212
  27. data/lib/rdoc/encoding.rb +105 -103
  28. data/lib/rdoc/erb_partial.rb +13 -11
  29. data/lib/rdoc/erbio.rb +29 -27
  30. data/lib/rdoc/generator/aliki.rb +165 -140
  31. data/lib/rdoc/generator/darkfish.rb +647 -631
  32. data/lib/rdoc/generator/json_index.rb +233 -229
  33. data/lib/rdoc/generator/markup.rb +165 -122
  34. data/lib/rdoc/generator/pot/message_extractor.rb +57 -51
  35. data/lib/rdoc/generator/pot/po.rb +52 -51
  36. data/lib/rdoc/generator/pot/po_entry.rb +138 -132
  37. data/lib/rdoc/generator/pot.rb +85 -81
  38. data/lib/rdoc/generator/ri.rb +23 -19
  39. data/lib/rdoc/generator/template/aliki/DESIGN.md +538 -0
  40. data/lib/rdoc/generator/template/aliki/_aside_toc.rhtml +1 -1
  41. data/lib/rdoc/generator/template/aliki/_footer.rhtml +1 -1
  42. data/lib/rdoc/generator/template/aliki/_head.rhtml +11 -11
  43. data/lib/rdoc/generator/template/aliki/_header.rhtml +29 -44
  44. data/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +8 -6
  45. data/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +8 -6
  46. data/lib/rdoc/generator/template/aliki/_sidebar_installed.rhtml +1 -1
  47. data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +2 -2
  48. data/lib/rdoc/generator/template/aliki/_sidebar_search.rhtml +4 -4
  49. data/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +1 -1
  50. data/lib/rdoc/generator/template/aliki/_sidebar_toggle.rhtml +1 -1
  51. data/lib/rdoc/generator/template/aliki/class.rhtml +56 -46
  52. data/lib/rdoc/generator/template/aliki/css/rdoc.css +538 -283
  53. data/lib/rdoc/generator/template/aliki/index.rhtml +1 -1
  54. data/lib/rdoc/generator/template/aliki/js/aliki.js +80 -102
  55. data/lib/rdoc/generator/template/aliki/page.rhtml +1 -1
  56. data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +1 -1
  57. data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +2 -2
  58. data/lib/rdoc/generator/template/darkfish/_footer.rhtml +1 -1
  59. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +8 -6
  60. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +8 -6
  61. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +1 -1
  62. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +1 -1
  63. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +1 -1
  64. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +5 -5
  65. data/lib/rdoc/generator/template/darkfish/class.rhtml +18 -21
  66. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +0 -1
  67. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +3 -3
  68. data/lib/rdoc/generator.rb +48 -46
  69. data/lib/rdoc/i18n/locale.rb +99 -95
  70. data/lib/rdoc/i18n/text.rb +109 -105
  71. data/lib/rdoc/i18n.rb +7 -5
  72. data/lib/rdoc/markdown/byte_runtime.rb +80 -0
  73. data/lib/rdoc/markdown.kpeg +30 -21
  74. data/lib/rdoc/markdown.rb +329 -151
  75. data/lib/rdoc/markup/block_quote.rb +12 -8
  76. data/lib/rdoc/markup/document.rb +127 -123
  77. data/lib/rdoc/markup/formatter.rb +215 -221
  78. data/lib/rdoc/markup/heading.rb +1 -4
  79. data/lib/rdoc/markup/include.rb +33 -29
  80. data/lib/rdoc/markup/indented_paragraph.rb +37 -33
  81. data/lib/rdoc/markup/inline_parser.rb +281 -277
  82. data/lib/rdoc/markup/list.rb +80 -88
  83. data/lib/rdoc/markup/list_item.rb +73 -85
  84. data/lib/rdoc/markup/paragraph.rb +23 -19
  85. data/lib/rdoc/markup/parser.rb +501 -497
  86. data/lib/rdoc/markup/pre_process.rb +284 -305
  87. data/lib/rdoc/markup/raw.rb +2 -2
  88. data/lib/rdoc/markup/rule.rb +16 -12
  89. data/lib/rdoc/markup/to_ansi.rb +143 -139
  90. data/lib/rdoc/markup/to_bs.rb +72 -68
  91. data/lib/rdoc/markup/to_html.rb +600 -493
  92. data/lib/rdoc/markup/to_html_crossref.rb +221 -191
  93. data/lib/rdoc/markup/to_html_snippet.rb +232 -227
  94. data/lib/rdoc/markup/to_joined_paragraph.rb +40 -41
  95. data/lib/rdoc/markup/to_label.rb +63 -59
  96. data/lib/rdoc/markup/to_markdown.rb +212 -208
  97. data/lib/rdoc/markup/to_rdoc.rb +336 -332
  98. data/lib/rdoc/markup/to_table_of_contents.rb +66 -62
  99. data/lib/rdoc/markup/to_test.rb +60 -56
  100. data/lib/rdoc/markup/to_tt_only.rb +83 -86
  101. data/lib/rdoc/markup/verbatim.rb +62 -58
  102. data/lib/rdoc/markup.rb +198 -196
  103. data/lib/rdoc/options.rb +1063 -1076
  104. data/lib/rdoc/parser/c.rb +1039 -1036
  105. data/lib/rdoc/parser/changelog.rb +319 -315
  106. data/lib/rdoc/parser/markdown.rb +17 -13
  107. data/lib/rdoc/parser/rbs.rb +279 -0
  108. data/lib/rdoc/parser/rd.rb +17 -13
  109. data/lib/rdoc/parser/ruby.rb +1231 -2222
  110. data/lib/rdoc/parser/ruby_colorizer.rb +303 -0
  111. data/lib/rdoc/parser/simple.rb +31 -27
  112. data/lib/rdoc/parser/text.rb +12 -8
  113. data/lib/rdoc/parser.rb +230 -221
  114. data/lib/rdoc/rbs_helper.rb +186 -0
  115. data/lib/rdoc/rd/inline.rb +57 -53
  116. data/lib/rdoc/rd.rb +90 -88
  117. data/lib/rdoc/rdoc.rb +547 -366
  118. data/lib/rdoc/ri/driver.rb +1141 -1130
  119. data/lib/rdoc/ri/formatter.rb +7 -3
  120. data/lib/rdoc/ri/paths.rb +140 -136
  121. data/lib/rdoc/ri/servlet.rb +456 -0
  122. data/lib/rdoc/ri/store.rb +4 -2
  123. data/lib/rdoc/ri/task.rb +55 -51
  124. data/lib/rdoc/ri.rb +14 -11
  125. data/lib/rdoc/rubygems_hook.rb +194 -192
  126. data/lib/rdoc/server.rb +462 -0
  127. data/lib/rdoc/stats/normal.rb +46 -42
  128. data/lib/rdoc/stats/quiet.rb +39 -35
  129. data/lib/rdoc/stats/verbose.rb +35 -31
  130. data/lib/rdoc/stats.rb +363 -338
  131. data/lib/rdoc/store.rb +919 -725
  132. data/lib/rdoc/task.rb +260 -255
  133. data/lib/rdoc/text.rb +130 -245
  134. data/lib/rdoc/token_stream.rb +101 -115
  135. data/lib/rdoc/tom_doc.rb +203 -201
  136. data/lib/rdoc/version.rb +1 -1
  137. data/lib/rdoc.rb +35 -7
  138. data/lib/rubygems_plugin.rb +2 -11
  139. data/rdoc-logo.svg +43 -0
  140. data/rdoc.gemspec +6 -4
  141. metadata +36 -20
  142. data/lib/rdoc/code_object/anon_class.rb +0 -10
  143. data/lib/rdoc/code_object/ghost_method.rb +0 -6
  144. data/lib/rdoc/code_object/meta_method.rb +0 -6
  145. data/lib/rdoc/markdown/literals.kpeg +0 -21
  146. data/lib/rdoc/markdown/literals.rb +0 -454
  147. data/lib/rdoc/parser/prism_ruby.rb +0 -1112
  148. data/lib/rdoc/parser/ripper_state_lex.rb +0 -302
  149. data/lib/rdoc/parser/ruby_tools.rb +0 -163
  150. data/lib/rdoc/servlet.rb +0 -452
@@ -1,6 +1,10 @@
1
1
  # frozen_string_literal: true
2
- ##
3
- # For RubyGems backwards compatibility
2
+ module RDoc
3
+ module RI
4
+ ##
5
+ # For RubyGems backwards compatibility
4
6
 
5
- module RDoc::RI::Formatter # :nodoc:
7
+ module Formatter # :nodoc:
8
+ end
9
+ end
6
10
  end
data/lib/rdoc/ri/paths.rb CHANGED
@@ -1,171 +1,175 @@
1
1
  # frozen_string_literal: true
2
2
  require_relative '../rdoc'
3
3
 
4
- ##
5
- # The directories where ri data lives. Paths can be enumerated via ::each, or
6
- # queried individually via ::system_dir, ::site_dir, ::home_dir and ::gem_dir.
7
-
8
- module RDoc::RI::Paths
9
-
10
- #:stopdoc:
11
- require 'rbconfig'
12
-
13
- version = RbConfig::CONFIG['ruby_version']
4
+ module RDoc
5
+ module RI
6
+ ##
7
+ # The directories where ri data lives. Paths can be enumerated via ::each, or
8
+ # queried individually via ::system_dir, ::site_dir, ::home_dir and ::gem_dir.
9
+
10
+ module Paths
11
+
12
+ #:stopdoc:
13
+ require 'rbconfig'
14
+
15
+ version = RbConfig::CONFIG['ruby_version']
16
+
17
+ BASE = File.join RbConfig::CONFIG['ridir'], version
18
+
19
+ HOMEDIR = ::RDoc.home
20
+ #:startdoc:
21
+
22
+ ##
23
+ # Iterates over each selected path yielding the directory and type.
24
+ #
25
+ # Yielded types:
26
+ # :system:: Where Ruby's ri data is stored. Yielded when +system+ is
27
+ # true
28
+ # :site:: Where ri for installed libraries are stored. Yielded when
29
+ # +site+ is true. Normally no ri data is stored here.
30
+ # :home:: ~/.rdoc. Yielded when +home+ is true.
31
+ # :gem:: ri data for an installed gem. Yielded when +gems+ is true.
32
+ # :extra:: ri data directory from the command line. Yielded for each
33
+ # entry in +extra_dirs+
34
+
35
+ def self.each(system = true, site = true, home = true, gems = :latest, *extra_dirs) # :yields: directory, type
36
+ return enum_for __method__, system, site, home, gems, *extra_dirs unless
37
+ block_given?
38
+
39
+ extra_dirs.each do |dir|
40
+ yield dir, :extra
41
+ end
14
42
 
15
- BASE = File.join RbConfig::CONFIG['ridir'], version
43
+ yield system_dir, :system if system
44
+ yield site_dir, :site if site
45
+ yield home_dir, :home if home and HOMEDIR
16
46
 
17
- HOMEDIR = RDoc.home
18
- #:startdoc:
47
+ gemdirs(gems).each do |dir|
48
+ yield dir, :gem
49
+ end if gems
19
50
 
20
- ##
21
- # Iterates over each selected path yielding the directory and type.
22
- #
23
- # Yielded types:
24
- # :system:: Where Ruby's ri data is stored. Yielded when +system+ is
25
- # true
26
- # :site:: Where ri for installed libraries are stored. Yielded when
27
- # +site+ is true. Normally no ri data is stored here.
28
- # :home:: ~/.rdoc. Yielded when +home+ is true.
29
- # :gem:: ri data for an installed gem. Yielded when +gems+ is true.
30
- # :extra:: ri data directory from the command line. Yielded for each
31
- # entry in +extra_dirs+
51
+ nil
52
+ end
32
53
 
33
- def self.each system = true, site = true, home = true, gems = :latest, *extra_dirs # :yields: directory, type
34
- return enum_for __method__, system, site, home, gems, *extra_dirs unless
35
- block_given?
54
+ ##
55
+ # The ri directory for the gem with +gem_name+.
36
56
 
37
- extra_dirs.each do |dir|
38
- yield dir, :extra
39
- end
57
+ def self.gem_dir(name, version)
58
+ req = Gem::Requirement.new "= #{version}"
40
59
 
41
- yield system_dir, :system if system
42
- yield site_dir, :site if site
43
- yield home_dir, :home if home and HOMEDIR
60
+ spec = Gem::Specification.find_by_name name, req
44
61
 
45
- gemdirs(gems).each do |dir|
46
- yield dir, :gem
47
- end if gems
62
+ File.join spec.doc_dir, 'ri'
63
+ end
48
64
 
49
- nil
50
- end
65
+ ##
66
+ # The latest installed gems' ri directories. +filter+ can be :all or
67
+ # :latest.
68
+ #
69
+ # A +filter+ :all includes all versions of gems and includes gems without
70
+ # ri documentation.
51
71
 
52
- ##
53
- # The ri directory for the gem with +gem_name+.
72
+ def self.gemdirs(filter = :latest)
73
+ ri_paths = {}
54
74
 
55
- def self.gem_dir(name, version)
56
- req = Gem::Requirement.new "= #{version}"
75
+ all = Gem::Specification.map do |spec|
76
+ [File.join(spec.doc_dir, 'ri'), spec.name, spec.version]
77
+ end
57
78
 
58
- spec = Gem::Specification.find_by_name name, req
79
+ if filter == :all
80
+ gemdirs = []
81
+
82
+ all.group_by do |_, name, _|
83
+ name
84
+ end.sort_by do |group, _|
85
+ group
86
+ end.map do |group, items|
87
+ items.sort_by do |_, _, version|
88
+ version
89
+ end.reverse_each do |dir,|
90
+ gemdirs << dir
91
+ end
92
+ end
93
+
94
+ return gemdirs
95
+ end
59
96
 
60
- File.join spec.doc_dir, 'ri'
61
- end
97
+ all.each do |dir, name, ver|
98
+ next unless File.exist? dir
62
99
 
63
- ##
64
- # The latest installed gems' ri directories. +filter+ can be :all or
65
- # :latest.
66
- #
67
- # A +filter+ :all includes all versions of gems and includes gems without
68
- # ri documentation.
100
+ if ri_paths[name].nil? or ver > ri_paths[name].first
101
+ ri_paths[name] = [ver, name, dir]
102
+ end
103
+ end
69
104
 
70
- def self.gemdirs(filter = :latest)
71
- ri_paths = {}
105
+ ri_paths.sort_by { |_, (_, name, _)| name }.map { |k, v| v.last }
106
+ rescue LoadError
107
+ []
108
+ end
72
109
 
73
- all = Gem::Specification.map do |spec|
74
- [File.join(spec.doc_dir, 'ri'), spec.name, spec.version]
75
- end
110
+ ##
111
+ # The location of the rdoc data in the user's home directory.
112
+ #
113
+ # Like ::system, ri data in the user's home directory is rare and predates
114
+ # libraries distributed via RubyGems. ri data is rarely generated into this
115
+ # directory.
76
116
 
77
- if filter == :all then
78
- gemdirs = []
79
-
80
- all.group_by do |_, name, _|
81
- name
82
- end.sort_by do |group, _|
83
- group
84
- end.map do |group, items|
85
- items.sort_by do |_, _, version|
86
- version
87
- end.reverse_each do |dir,|
88
- gemdirs << dir
89
- end
117
+ def self.home_dir
118
+ HOMEDIR
90
119
  end
91
120
 
92
- return gemdirs
93
- end
121
+ ##
122
+ # Returns existing directories from the selected documentation directories
123
+ # as an Array.
124
+ #
125
+ # See also ::each
94
126
 
95
- all.each do |dir, name, ver|
96
- next unless File.exist? dir
127
+ def self.path(system = true, site = true, home = true, gems = :latest, *extra_dirs)
128
+ path = raw_path system, site, home, gems, *extra_dirs
97
129
 
98
- if ri_paths[name].nil? or ver > ri_paths[name].first then
99
- ri_paths[name] = [ver, name, dir]
130
+ path.select { |directory| File.directory? directory }
100
131
  end
101
- end
102
-
103
- ri_paths.sort_by { |_, (_, name, _)| name }.map { |k, v| v.last }
104
- rescue LoadError
105
- []
106
- end
107
132
 
108
- ##
109
- # The location of the rdoc data in the user's home directory.
110
- #
111
- # Like ::system, ri data in the user's home directory is rare and predates
112
- # libraries distributed via RubyGems. ri data is rarely generated into this
113
- # directory.
133
+ ##
134
+ # Returns selected documentation directories including nonexistent
135
+ # directories.
136
+ #
137
+ # See also ::each
114
138
 
115
- def self.home_dir
116
- HOMEDIR
117
- end
139
+ def self.raw_path(system, site, home, gems, *extra_dirs)
140
+ path = []
118
141
 
119
- ##
120
- # Returns existing directories from the selected documentation directories
121
- # as an Array.
122
- #
123
- # See also ::each
142
+ each(system, site, home, gems, *extra_dirs) do |dir, type|
143
+ path << dir
144
+ end
124
145
 
125
- def self.path(system = true, site = true, home = true, gems = :latest, *extra_dirs)
126
- path = raw_path system, site, home, gems, *extra_dirs
146
+ path.compact
147
+ end
127
148
 
128
- path.select { |directory| File.directory? directory }
129
- end
149
+ ##
150
+ # The location of ri data installed into the site dir.
151
+ #
152
+ # Historically this was available for documentation installed by Ruby
153
+ # libraries predating RubyGems. It is unlikely to contain any content for
154
+ # modern Ruby installations.
130
155
 
131
- ##
132
- # Returns selected documentation directories including nonexistent
133
- # directories.
134
- #
135
- # See also ::each
156
+ def self.site_dir
157
+ File.join BASE, 'site'
158
+ end
136
159
 
137
- def self.raw_path(system, site, home, gems, *extra_dirs)
138
- path = []
160
+ ##
161
+ # The location of the built-in ri data.
162
+ #
163
+ # This data is built automatically when `make` is run when Ruby is
164
+ # installed. If you did not install Ruby by hand you may need to install
165
+ # the documentation yourself. Please consult the documentation for your
166
+ # package manager or Ruby installer for details. You can also use the
167
+ # rdoc-data gem to install system ri data for common versions of Ruby.
168
+
169
+ def self.system_dir
170
+ File.join BASE, 'system'
171
+ end
139
172
 
140
- each(system, site, home, gems, *extra_dirs) do |dir, type|
141
- path << dir
142
173
  end
143
-
144
- path.compact
145
- end
146
-
147
- ##
148
- # The location of ri data installed into the site dir.
149
- #
150
- # Historically this was available for documentation installed by Ruby
151
- # libraries predating RubyGems. It is unlikely to contain any content for
152
- # modern Ruby installations.
153
-
154
- def self.site_dir
155
- File.join BASE, 'site'
156
- end
157
-
158
- ##
159
- # The location of the built-in ri data.
160
- #
161
- # This data is built automatically when `make` is run when Ruby is
162
- # installed. If you did not install Ruby by hand you may need to install
163
- # the documentation yourself. Please consult the documentation for your
164
- # package manager or Ruby installer for details. You can also use the
165
- # rdoc-data gem to install system ri data for common versions of Ruby.
166
-
167
- def self.system_dir
168
- File.join BASE, 'system'
169
174
  end
170
-
171
175
  end