rdoc 7.1.0 → 8.0.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 (113) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +3 -4
  3. data/LICENSE.rdoc +4 -0
  4. data/README.md +43 -2
  5. data/doc/markup_reference/markdown.md +104 -3
  6. data/lib/rdoc/code_object/alias.rb +2 -8
  7. data/lib/rdoc/code_object/any_method.rb +11 -6
  8. data/lib/rdoc/code_object/attr.rb +12 -6
  9. data/lib/rdoc/code_object/class_module.rb +62 -32
  10. data/lib/rdoc/code_object/constant.rb +29 -3
  11. data/lib/rdoc/code_object/context/section.rb +30 -43
  12. data/lib/rdoc/code_object/context.rb +53 -37
  13. data/lib/rdoc/code_object/method_attr.rb +9 -15
  14. data/lib/rdoc/code_object/mixin.rb +3 -0
  15. data/lib/rdoc/code_object/top_level.rb +11 -3
  16. data/lib/rdoc/code_object.rb +2 -4
  17. data/lib/rdoc/comment.rb +1 -66
  18. data/lib/rdoc/cross_reference.rb +8 -30
  19. data/lib/rdoc/encoding.rb +3 -3
  20. data/lib/rdoc/generator/aliki.rb +17 -0
  21. data/lib/rdoc/generator/darkfish.rb +12 -6
  22. data/lib/rdoc/generator/json_index.rb +2 -2
  23. data/lib/rdoc/generator/markup.rb +56 -31
  24. data/lib/rdoc/generator/template/aliki/DESIGN.md +536 -0
  25. data/lib/rdoc/generator/template/aliki/_aside_toc.rhtml +1 -1
  26. data/lib/rdoc/generator/template/aliki/_head.rhtml +6 -1
  27. data/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +8 -6
  28. data/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +8 -6
  29. data/lib/rdoc/generator/template/aliki/_sidebar_installed.rhtml +1 -1
  30. data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +2 -2
  31. data/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +1 -1
  32. data/lib/rdoc/generator/template/aliki/_sidebar_toggle.rhtml +1 -1
  33. data/lib/rdoc/generator/template/aliki/class.rhtml +61 -51
  34. data/lib/rdoc/generator/template/aliki/css/rdoc.css +365 -147
  35. data/lib/rdoc/generator/template/aliki/index.rhtml +1 -1
  36. data/lib/rdoc/generator/template/aliki/js/aliki.js +28 -20
  37. data/lib/rdoc/generator/template/aliki/js/bash_highlighter.js +167 -0
  38. data/lib/rdoc/generator/template/aliki/js/search_controller.js +1 -1
  39. data/lib/rdoc/generator/template/aliki/page.rhtml +1 -1
  40. data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +1 -1
  41. data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +2 -2
  42. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +8 -6
  43. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +8 -6
  44. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +1 -1
  45. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +1 -1
  46. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +1 -1
  47. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +5 -5
  48. data/lib/rdoc/generator/template/darkfish/class.rhtml +18 -21
  49. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +0 -1
  50. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +3 -3
  51. data/lib/rdoc/i18n/text.rb +3 -3
  52. data/lib/rdoc/markdown.kpeg +36 -17
  53. data/lib/rdoc/markdown.rb +324 -125
  54. data/lib/rdoc/markup/document.rb +2 -2
  55. data/lib/rdoc/markup/formatter.rb +128 -115
  56. data/lib/rdoc/markup/heading.rb +3 -6
  57. data/lib/rdoc/markup/indented_paragraph.rb +1 -1
  58. data/lib/rdoc/markup/inline_parser.rb +312 -0
  59. data/lib/rdoc/markup/list.rb +2 -2
  60. data/lib/rdoc/markup/list_item.rb +2 -2
  61. data/lib/rdoc/markup/parser.rb +1 -1
  62. data/lib/rdoc/markup/pre_process.rb +0 -25
  63. data/lib/rdoc/markup/to_ansi.rb +52 -5
  64. data/lib/rdoc/markup/to_bs.rb +23 -43
  65. data/lib/rdoc/markup/to_html.rb +279 -226
  66. data/lib/rdoc/markup/to_html_crossref.rb +122 -136
  67. data/lib/rdoc/markup/to_html_snippet.rb +65 -65
  68. data/lib/rdoc/markup/to_joined_paragraph.rb +0 -5
  69. data/lib/rdoc/markup/to_label.rb +22 -23
  70. data/lib/rdoc/markup/to_markdown.rb +62 -38
  71. data/lib/rdoc/markup/to_rdoc.rb +88 -28
  72. data/lib/rdoc/markup/to_table_of_contents.rb +1 -1
  73. data/lib/rdoc/markup/to_test.rb +9 -1
  74. data/lib/rdoc/markup/to_tt_only.rb +10 -23
  75. data/lib/rdoc/markup/verbatim.rb +1 -1
  76. data/lib/rdoc/markup.rb +8 -30
  77. data/lib/rdoc/options.rb +36 -51
  78. data/lib/rdoc/parser/c.rb +7 -6
  79. data/lib/rdoc/parser/changelog.rb +21 -0
  80. data/lib/rdoc/parser/rbs.rb +275 -0
  81. data/lib/rdoc/parser/ruby.rb +955 -2067
  82. data/lib/rdoc/parser/ruby_colorizer.rb +253 -0
  83. data/lib/rdoc/parser.rb +3 -2
  84. data/lib/rdoc/rbs_helper.rb +186 -0
  85. data/lib/rdoc/rdoc.rb +196 -24
  86. data/lib/rdoc/ri/driver.rb +8 -2
  87. data/lib/rdoc/ri/paths.rb +1 -1
  88. data/lib/rdoc/{servlet.rb → ri/servlet.rb} +5 -5
  89. data/lib/rdoc/ri.rb +4 -3
  90. data/lib/rdoc/rubygems_hook.rb +11 -11
  91. data/lib/rdoc/server.rb +460 -0
  92. data/lib/rdoc/stats.rb +147 -124
  93. data/lib/rdoc/store.rb +212 -4
  94. data/lib/rdoc/task.rb +16 -15
  95. data/lib/rdoc/text.rb +24 -117
  96. data/lib/rdoc/token_stream.rb +11 -33
  97. data/lib/rdoc/version.rb +1 -1
  98. data/lib/rdoc.rb +35 -7
  99. data/lib/rubygems_plugin.rb +2 -11
  100. data/rdoc-logo.svg +43 -0
  101. data/rdoc.gemspec +6 -4
  102. metadata +37 -23
  103. data/lib/rdoc/code_object/anon_class.rb +0 -10
  104. data/lib/rdoc/code_object/ghost_method.rb +0 -6
  105. data/lib/rdoc/code_object/meta_method.rb +0 -6
  106. data/lib/rdoc/markup/attr_changer.rb +0 -22
  107. data/lib/rdoc/markup/attr_span.rb +0 -35
  108. data/lib/rdoc/markup/attribute_manager.rb +0 -432
  109. data/lib/rdoc/markup/attributes.rb +0 -70
  110. data/lib/rdoc/markup/regexp_handling.rb +0 -40
  111. data/lib/rdoc/parser/prism_ruby.rb +0 -1100
  112. data/lib/rdoc/parser/ripper_state_lex.rb +0 -302
  113. data/lib/rdoc/parser/ruby_tools.rb +0 -163
data/lib/rdoc/text.rb CHANGED
@@ -29,34 +29,6 @@ module RDoc::Text
29
29
 
30
30
  MARKUP_FORMAT.default = RDoc::Markup
31
31
 
32
- ##
33
- # Maps an encoding to a Hash of characters properly transcoded for that
34
- # encoding.
35
- #
36
- # See also encode_fallback.
37
-
38
- TO_HTML_CHARACTERS = Hash.new do |h, encoding|
39
- h[encoding] = {
40
- :close_dquote => encode_fallback('”', encoding, '"'),
41
- :close_squote => encode_fallback('’', encoding, '\''),
42
- :copyright => encode_fallback('©', encoding, '(c)'),
43
- :ellipsis => encode_fallback('…', encoding, '...'),
44
- :em_dash => encode_fallback('—', encoding, '---'),
45
- :en_dash => encode_fallback('–', encoding, '--'),
46
- :open_dquote => encode_fallback('“', encoding, '"'),
47
- :open_squote => encode_fallback('‘', encoding, '\''),
48
- :trademark => encode_fallback('®', encoding, '(r)'),
49
- }
50
- end
51
-
52
- ##
53
- # Transcodes +character+ to +encoding+ with a +fallback+ character.
54
-
55
- def self.encode_fallback(character, encoding, fallback)
56
- character.encode(encoding, :fallback => { character => fallback },
57
- :undef => :replace, :replace => fallback)
58
- end
59
-
60
32
  ##
61
33
  # Expands tab characters in +text+ to eight spaces
62
34
 
@@ -149,7 +121,7 @@ module RDoc::Text
149
121
  def snippet(text, limit = 100)
150
122
  document = parse text
151
123
 
152
- RDoc::Markup::ToHtmlSnippet.new(options, limit).convert document
124
+ RDoc::Markup::ToHtmlSnippet.new(limit).convert document
153
125
  end
154
126
 
155
127
  ##
@@ -193,94 +165,6 @@ module RDoc::Text
193
165
  text.gsub(/^\s+$/, empty)
194
166
  end
195
167
 
196
- ##
197
- # Converts ampersand, dashes, ellipsis, quotes, copyright and registered
198
- # trademark symbols in +text+ to properly encoded characters.
199
-
200
- def to_html(text)
201
- html = (''.encode text.encoding).dup
202
-
203
- encoded = RDoc::Text::TO_HTML_CHARACTERS[text.encoding]
204
-
205
- s = StringScanner.new text
206
- insquotes = false
207
- indquotes = false
208
- after_word = nil
209
-
210
- until s.eos? do
211
- case
212
- when s.scan(/<(tt|code)>.*?<\/\1>/) then # skip contents of tt
213
- html << s.matched.gsub('\\\\', '\\')
214
- when s.scan(/<(tt|code)>.*?/) then
215
- warn "mismatched <#{s[1]}> tag" # TODO signal file/line
216
- html << s.matched
217
- when s.scan(/<[^>]+\/?s*>/) then # skip HTML tags
218
- html << s.matched
219
- when s.scan(/\\(\S)/) then # unhandled suppressed crossref
220
- html << s[1]
221
- after_word = nil
222
- when s.scan(/\.\.\.(\.?)/) then
223
- html << s[1] << encoded[:ellipsis]
224
- after_word = nil
225
- when s.scan(/\(c\)/i) then
226
- html << encoded[:copyright]
227
- after_word = nil
228
- when s.scan(/\(r\)/i) then
229
- html << encoded[:trademark]
230
- after_word = nil
231
- when s.scan(/---/) then
232
- html << encoded[:em_dash]
233
- after_word = nil
234
- when s.scan(/--/) then
235
- html << encoded[:en_dash]
236
- after_word = nil
237
- when s.scan(/&quot;|"/) then
238
- html << encoded[indquotes ? :close_dquote : :open_dquote]
239
- indquotes = !indquotes
240
- after_word = nil
241
- when s.scan(/``/) then # backtick double quote
242
- html << encoded[:open_dquote]
243
- after_word = nil
244
- when s.scan(/(?:&#39;|'){2}/) then # tick double quote
245
- html << encoded[:close_dquote]
246
- after_word = nil
247
- when s.scan(/`/) then # backtick
248
- if insquotes or after_word
249
- html << '`'
250
- after_word = false
251
- else
252
- html << encoded[:open_squote]
253
- insquotes = true
254
- end
255
- when s.scan(/&#39;|'/) then # single quote
256
- if insquotes
257
- html << encoded[:close_squote]
258
- insquotes = false
259
- elsif after_word
260
- # Mary's dog, my parents' house: do not start paired quotes
261
- html << encoded[:close_squote]
262
- else
263
- html << encoded[:open_squote]
264
- insquotes = true
265
- end
266
-
267
- after_word = nil
268
- else # advance to the next potentially significant character
269
- match = s.scan(/.+?(?=[<\\.("'`&-])/) #"
270
-
271
- if match then
272
- html << match
273
- after_word = match =~ /\w$/
274
- else
275
- html << s.rest
276
- break
277
- end
278
- end
279
- end
280
-
281
- html
282
- end
283
-
284
168
  ##
285
169
  # Wraps +txt+ to +line_len+
286
170
 
@@ -334,4 +218,27 @@ module RDoc::Text
334
218
  text.downcase.gsub(/[^a-z0-9 \-]/, '').gsub(' ', '-')
335
219
  end
336
220
 
221
+ ##
222
+ # Decodes a label that may be in legacy RDoc format where CGI.escape was
223
+ # applied and then '%' was replaced with '-'. Converts '+' to space,
224
+ # then reverses -XX hex encoding for non-alphanumeric characters.
225
+ #
226
+ # Labels in new format pass through unchanged because -XX patterns that
227
+ # decode to alphanumeric characters are left as-is (CGI.escape never
228
+ # encodes alphanumerics).
229
+ #
230
+ # Examples:
231
+ # "What-27s+Here" -> "What's Here" (legacy: -27 is apostrophe)
232
+ # "Foo-3A-3ABar" -> "Foo::Bar" (legacy: -3A is colon)
233
+ # "Whats-Here" -> "Whats-Here" (new format, unchanged)
234
+
235
+ module_function def decode_legacy_label(label)
236
+ label = label.tr('+', ' ')
237
+ label.gsub!(/-([0-7][0-9A-F])/) do
238
+ char = [$1.hex].pack('C')
239
+ char.match?(/[a-zA-Z0-9]/) ? $& : char
240
+ end
241
+ label
242
+ end
243
+
337
244
  end
@@ -15,47 +15,25 @@ module RDoc::TokenStream
15
15
  # with the given class names. Other token types are not wrapped in spans.
16
16
 
17
17
  def self.to_html(token_stream)
18
- starting_title = false
19
-
20
18
  token_stream.map do |t|
21
19
  next unless t
22
20
 
23
21
  style = case t[:kind]
24
- when :on_const then 'ruby-constant'
25
- when :on_kw then 'ruby-keyword'
26
- when :on_ivar then 'ruby-ivar'
27
- when :on_cvar then 'ruby-identifier'
28
- when :on_gvar then 'ruby-identifier'
29
- when '=' != t[:text] && :on_op
30
- then 'ruby-operator'
31
- when :on_tlambda then 'ruby-operator'
32
- when :on_ident then 'ruby-identifier'
33
- when :on_label then 'ruby-value'
34
- when :on_backref, :on_dstring
35
- then 'ruby-node'
36
- when :on_comment then 'ruby-comment'
37
- when :on_embdoc then 'ruby-comment'
38
- when :on_regexp then 'ruby-regexp'
39
- when :on_tstring then 'ruby-string'
40
- when :on_int, :on_float,
41
- :on_rational, :on_imaginary,
42
- :on_heredoc,
43
- :on_symbol, :on_CHAR then 'ruby-value'
44
- when :on_heredoc_beg, :on_heredoc_end
45
- then 'ruby-identifier'
22
+ when :operator then 'ruby-operator'
23
+ when :keyword then 'ruby-keyword'
24
+ when :constant then 'ruby-constant'
25
+ when :ivar then 'ruby-ivar'
26
+ when :comment then 'ruby-comment'
27
+ when :value then 'ruby-value'
28
+ when :string then 'ruby-string'
29
+ when :symbol then 'ruby-value'
30
+ when :x_string then 'ruby-string'
31
+ when :regexp then 'ruby-regexp'
32
+ when :identifier then 'ruby-identifier'
46
33
  end
47
34
 
48
35
  text = t[:text]
49
36
 
50
- if :on_ident == t[:kind] && starting_title
51
- starting_title = false
52
- style = 'ruby-identifier ruby-title'
53
- end
54
-
55
- if :on_kw == t[:kind] and 'def' == t[:text]
56
- starting_title = true
57
- end
58
-
59
37
  text = CGI.escapeHTML text
60
38
 
61
39
  if style then
data/lib/rdoc/version.rb CHANGED
@@ -5,6 +5,6 @@ module RDoc
5
5
  ##
6
6
  # RDoc version you are using
7
7
 
8
- VERSION = '7.1.0'
8
+ VERSION = '8.0.0'
9
9
 
10
10
  end
data/lib/rdoc.rb CHANGED
@@ -100,7 +100,14 @@ module RDoc
100
100
  %w[arg args yield yields notnew not-new not_new doc]
101
101
 
102
102
  ##
103
- # Loads the best available YAML library.
103
+ # Loads the YAML backend used for <tt>.rdoc_options</tt>.
104
+ #
105
+ # Psych is preferred and used whenever it can be required. Requiring +yaml+
106
+ # is not attempted as a fallback because +yaml+ is merely a thin wrapper that
107
+ # loads Psych anyway. When Psych is genuinely unavailable, a minimal
108
+ # serializer shipped with RubyGems or Bundler is loaded instead, so that RDoc
109
+ # does not need a runtime dependency on Psych. Callers branch on whether
110
+ # Psych is defined and use ::yaml_serializer otherwise.
104
111
 
105
112
  def self.load_yaml
106
113
  begin
@@ -113,11 +120,25 @@ module RDoc
113
120
  begin
114
121
  require 'psych'
115
122
  rescue ::LoadError
116
- ensure
117
- require 'yaml'
123
+ # Psych is unavailable; load the stub serializer shipped with RubyGems,
124
+ # or Bundler's copy on RubyGems older than 3.5 (Ruby 3.2) where
125
+ # rubygems/yaml_serializer does not exist yet.
126
+ begin
127
+ require 'rubygems/yaml_serializer'
128
+ rescue ::LoadError
129
+ require 'bundler/yaml_serializer'
130
+ end
118
131
  end
119
132
  end
120
133
 
134
+ ##
135
+ # The minimal YAML serializer module loaded by ::load_yaml as a fallback.
136
+ # Only meaningful when Psych is not defined.
137
+
138
+ def self.yaml_serializer
139
+ defined?(Gem::YAMLSerializer) ? Gem::YAMLSerializer : Bundler::YAMLSerializer
140
+ end
141
+
121
142
  ##
122
143
  # Searches and returns the directory for settings.
123
144
  #
@@ -151,6 +172,16 @@ module RDoc
151
172
  end
152
173
  end
153
174
 
175
+ ##
176
+ # Returns +File.mtime(file)+, or +nil+ if the file cannot be stat'd
177
+ # (missing, permission denied, etc.).
178
+
179
+ def self.safe_mtime(file)
180
+ File.mtime(file)
181
+ rescue SystemCallError
182
+ nil
183
+ end
184
+
154
185
  autoload :RDoc, "#{__dir__}/rdoc/rdoc"
155
186
 
156
187
  autoload :CrossReference, "#{__dir__}/rdoc/cross_reference"
@@ -160,7 +191,7 @@ module RDoc
160
191
  autoload :Generator, "#{__dir__}/rdoc/generator"
161
192
  autoload :Options, "#{__dir__}/rdoc/options"
162
193
  autoload :Parser, "#{__dir__}/rdoc/parser"
163
- autoload :Servlet, "#{__dir__}/rdoc/servlet"
194
+ autoload :Server, "#{__dir__}/rdoc/server"
164
195
  autoload :RI, "#{__dir__}/rdoc/ri"
165
196
  autoload :Stats, "#{__dir__}/rdoc/stats"
166
197
  autoload :Store, "#{__dir__}/rdoc/store"
@@ -189,7 +220,6 @@ module RDoc
189
220
  autoload :Context, "#{__dir__}/rdoc/code_object/context"
190
221
  autoload :TopLevel, "#{__dir__}/rdoc/code_object/top_level"
191
222
 
192
- autoload :AnonClass, "#{__dir__}/rdoc/code_object/anon_class"
193
223
  autoload :ClassModule, "#{__dir__}/rdoc/code_object/class_module"
194
224
  autoload :NormalClass, "#{__dir__}/rdoc/code_object/normal_class"
195
225
  autoload :NormalModule, "#{__dir__}/rdoc/code_object/normal_module"
@@ -198,8 +228,6 @@ module RDoc
198
228
  autoload :Alias, "#{__dir__}/rdoc/code_object/alias"
199
229
  autoload :AnyMethod, "#{__dir__}/rdoc/code_object/any_method"
200
230
  autoload :MethodAttr, "#{__dir__}/rdoc/code_object/method_attr"
201
- autoload :GhostMethod, "#{__dir__}/rdoc/code_object/ghost_method"
202
- autoload :MetaMethod, "#{__dir__}/rdoc/code_object/meta_method"
203
231
  autoload :Attr, "#{__dir__}/rdoc/code_object/attr"
204
232
 
205
233
  autoload :Constant, "#{__dir__}/rdoc/code_object/constant"
@@ -10,14 +10,5 @@
10
10
 
11
11
  require_relative 'rdoc/rubygems_hook'
12
12
 
13
- # To install dependency libraries of RDoc, you need to run bundle install.
14
- # At that time, rdoc/markdown is not generated.
15
- # If generate and remove are executed at that time, an error will occur.
16
- # So, we can't register generate and remove to Gem at that time.
17
- begin
18
- require_relative 'rdoc/markdown'
19
- rescue LoadError
20
- else
21
- Gem.done_installing(&RDoc::RubyGemsHook.method(:generate))
22
- Gem.pre_uninstall(&RDoc::RubyGemsHook.method(:remove))
23
- end
13
+ Gem.done_installing(&RDoc::RubyGemsHook.method(:generate))
14
+ Gem.pre_uninstall(&RDoc::RubyGemsHook.method(:remove))
data/rdoc-logo.svg ADDED
@@ -0,0 +1,43 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="168" height="198" viewBox="298 140 712 840" role="img" aria-labelledby="title desc">
2
+ <title id="title">RDoc</title>
3
+ <desc id="desc">A red document outline with a folded corner and a Ruby gem.</desc>
4
+ <style>
5
+ .surface {
6
+ fill: transparent;
7
+ }
8
+
9
+ .stroke {
10
+ stroke: url(#rdoc-red);
11
+ }
12
+
13
+ .solid {
14
+ fill: url(#rdoc-red);
15
+ }
16
+ </style>
17
+ <defs>
18
+ <linearGradient id="rdoc-red" x1="338" y1="178" x2="973" y2="938" gradientUnits="userSpaceOnUse">
19
+ <stop id="rdoc-red-start" offset="0" stop-color="#e62923"/>
20
+ <stop id="rdoc-red-mid" offset="0.56" stop-color="#e62923"/>
21
+ <stop id="rdoc-red-end" offset="1" stop-color="#e62923"/>
22
+ </linearGradient>
23
+ <filter id="soft-red-shadow" x="-10%" y="-10%" width="120%" height="120%">
24
+ <feDropShadow dx="0" dy="5" stdDeviation="5" flood-color="#e62923" flood-opacity="0.1"/>
25
+ </filter>
26
+ </defs>
27
+
28
+ <g filter="url(#soft-red-shadow)" fill="none" class="stroke" stroke-linecap="round" stroke-linejoin="round">
29
+ <path class="surface" d="M382 178h326l149 149v499c0 24-20 44-44 44H382c-24 0-44-20-44-44V222c0-24 20-44 44-44Z" stroke="none"/>
30
+ <path d="M685 870H382c-24 0-44-20-44-44V222c0-24 20-44 44-44h326l149 149v246" stroke-width="26"/>
31
+ <path class="solid" d="M708 178v126c0 24 19 43 43 43h106" stroke="none"/>
32
+ <path d="M708 178 857 327" stroke-width="26"/>
33
+
34
+ <path d="M440 411h216" stroke-width="26"/>
35
+ <path d="M440 506h216" stroke-width="26"/>
36
+ <path d="M440 605h145" stroke-width="26"/>
37
+
38
+ <path class="surface" d="M668 609h224l81 97-195 232-191-232 81-97Z" stroke-width="26"/>
39
+ <path d="M668 609 700 706 778 609 858 706 892 609" stroke-width="20"/>
40
+ <path d="M587 706h386" stroke-width="20"/>
41
+ <path d="M700 706 778 938 858 706" stroke-width="20"/>
42
+ </g>
43
+ </svg>
data/rdoc.gemspec CHANGED
@@ -26,7 +26,7 @@ RDoc produces HTML and command-line documentation for Ruby projects.
26
26
  RDoc includes the +rdoc+ and +ri+ tools for generating and displaying documentation from the command-line.
27
27
  DESCRIPTION
28
28
  s.homepage = "https://ruby.github.io/rdoc"
29
- s.licenses = ["Ruby"]
29
+ s.licenses = ["Ruby", "GPL-2.0-only"]
30
30
 
31
31
  s.metadata["homepage_uri"] = s.homepage
32
32
  s.metadata["source_code_uri"] = "https://github.com/ruby/rdoc"
@@ -51,6 +51,7 @@ RDoc includes the +rdoc+ and +ri+ tools for generating and displaying documentat
51
51
  "exe/rdoc",
52
52
  "exe/ri",
53
53
  "man/ri.1",
54
+ "rdoc-logo.svg",
54
55
  "rdoc.gemspec",
55
56
  ]
56
57
  base = __dir__
@@ -60,13 +61,14 @@ RDoc includes the +rdoc+ and +ri+ tools for generating and displaying documentat
60
61
 
61
62
  s.files = (non_lib_files + template_files + lib_files).uniq
62
63
 
63
- s.rdoc_options = ["--main", "README.md"]
64
+ s.rdoc_options = ["--main", "README.md", "--copy-files", "rdoc-logo.svg"]
64
65
  s.extra_rdoc_files += s.files.grep(%r[\A[^\/]+\.(?:rdoc|md)\z])
65
66
 
66
- s.required_ruby_version = Gem::Requirement.new(">= 2.6.0")
67
+ s.required_ruby_version = Gem::Requirement.new(">= 3.2.0")
67
68
  s.required_rubygems_version = Gem::Requirement.new(">= 2.2")
68
69
 
69
- s.add_dependency 'psych', '>= 4.0.0'
70
70
  s.add_dependency 'erb'
71
71
  s.add_dependency 'tsort'
72
+ s.add_dependency 'prism', '>= 1.6.0'
73
+ s.add_dependency 'rbs', '>= 4.0.0'
72
74
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.0
4
+ version: 8.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Hodel
@@ -13,24 +13,24 @@ authors:
13
13
  - ITOYANAGI Sakura
14
14
  bindir: exe
15
15
  cert_chain: []
16
- date: 2026-01-13 00:00:00.000000000 Z
16
+ date: 2026-06-26 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
- name: psych
19
+ name: erb
20
20
  requirement: !ruby/object:Gem::Requirement
21
21
  requirements:
22
22
  - - ">="
23
23
  - !ruby/object:Gem::Version
24
- version: 4.0.0
24
+ version: '0'
25
25
  type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
28
28
  requirements:
29
29
  - - ">="
30
30
  - !ruby/object:Gem::Version
31
- version: 4.0.0
31
+ version: '0'
32
32
  - !ruby/object:Gem::Dependency
33
- name: erb
33
+ name: tsort
34
34
  requirement: !ruby/object:Gem::Requirement
35
35
  requirements:
36
36
  - - ">="
@@ -44,19 +44,33 @@ dependencies:
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
46
  - !ruby/object:Gem::Dependency
47
- name: tsort
47
+ name: prism
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  requirements:
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: '0'
52
+ version: 1.6.0
53
53
  type: :runtime
54
54
  prerelease: false
55
55
  version_requirements: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: '0'
59
+ version: 1.6.0
60
+ - !ruby/object:Gem::Dependency
61
+ name: rbs
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 4.0.0
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 4.0.0
60
74
  description: |
61
75
  RDoc produces HTML and command-line documentation for Ruby projects.
62
76
  RDoc includes the +rdoc+ and +ri+ tools for generating and displaying documentation from the command-line.
@@ -97,7 +111,6 @@ files:
97
111
  - lib/rdoc.rb
98
112
  - lib/rdoc/code_object.rb
99
113
  - lib/rdoc/code_object/alias.rb
100
- - lib/rdoc/code_object/anon_class.rb
101
114
  - lib/rdoc/code_object/any_method.rb
102
115
  - lib/rdoc/code_object/attr.rb
103
116
  - lib/rdoc/code_object/class_module.rb
@@ -105,9 +118,7 @@ files:
105
118
  - lib/rdoc/code_object/context.rb
106
119
  - lib/rdoc/code_object/context/section.rb
107
120
  - lib/rdoc/code_object/extend.rb
108
- - lib/rdoc/code_object/ghost_method.rb
109
121
  - lib/rdoc/code_object/include.rb
110
- - lib/rdoc/code_object/meta_method.rb
111
122
  - lib/rdoc/code_object/method_attr.rb
112
123
  - lib/rdoc/code_object/mixin.rb
113
124
  - lib/rdoc/code_object/normal_class.rb
@@ -131,6 +142,7 @@ files:
131
142
  - lib/rdoc/generator/pot/po.rb
132
143
  - lib/rdoc/generator/pot/po_entry.rb
133
144
  - lib/rdoc/generator/ri.rb
145
+ - lib/rdoc/generator/template/aliki/DESIGN.md
134
146
  - lib/rdoc/generator/template/aliki/_aside_toc.rhtml
135
147
  - lib/rdoc/generator/template/aliki/_footer.rhtml
136
148
  - lib/rdoc/generator/template/aliki/_head.rhtml
@@ -150,6 +162,7 @@ files:
150
162
  - lib/rdoc/generator/template/aliki/css/rdoc.css
151
163
  - lib/rdoc/generator/template/aliki/index.rhtml
152
164
  - lib/rdoc/generator/template/aliki/js/aliki.js
165
+ - lib/rdoc/generator/template/aliki/js/bash_highlighter.js
153
166
  - lib/rdoc/generator/template/aliki/js/c_highlighter.js
154
167
  - lib/rdoc/generator/template/aliki/js/search_controller.js
155
168
  - lib/rdoc/generator/template/aliki/js/search_navigation.js
@@ -225,10 +238,6 @@ files:
225
238
  - lib/rdoc/markdown/literals.kpeg
226
239
  - lib/rdoc/markdown/literals.rb
227
240
  - lib/rdoc/markup.rb
228
- - lib/rdoc/markup/attr_changer.rb
229
- - lib/rdoc/markup/attr_span.rb
230
- - lib/rdoc/markup/attribute_manager.rb
231
- - lib/rdoc/markup/attributes.rb
232
241
  - lib/rdoc/markup/blank_line.rb
233
242
  - lib/rdoc/markup/block_quote.rb
234
243
  - lib/rdoc/markup/document.rb
@@ -238,13 +247,13 @@ files:
238
247
  - lib/rdoc/markup/heading.rb
239
248
  - lib/rdoc/markup/include.rb
240
249
  - lib/rdoc/markup/indented_paragraph.rb
250
+ - lib/rdoc/markup/inline_parser.rb
241
251
  - lib/rdoc/markup/list.rb
242
252
  - lib/rdoc/markup/list_item.rb
243
253
  - lib/rdoc/markup/paragraph.rb
244
254
  - lib/rdoc/markup/parser.rb
245
255
  - lib/rdoc/markup/pre_process.rb
246
256
  - lib/rdoc/markup/raw.rb
247
- - lib/rdoc/markup/regexp_handling.rb
248
257
  - lib/rdoc/markup/rule.rb
249
258
  - lib/rdoc/markup/table.rb
250
259
  - lib/rdoc/markup/to_ansi.rb
@@ -265,13 +274,13 @@ files:
265
274
  - lib/rdoc/parser/c.rb
266
275
  - lib/rdoc/parser/changelog.rb
267
276
  - lib/rdoc/parser/markdown.rb
268
- - lib/rdoc/parser/prism_ruby.rb
277
+ - lib/rdoc/parser/rbs.rb
269
278
  - lib/rdoc/parser/rd.rb
270
- - lib/rdoc/parser/ripper_state_lex.rb
271
279
  - lib/rdoc/parser/ruby.rb
272
- - lib/rdoc/parser/ruby_tools.rb
280
+ - lib/rdoc/parser/ruby_colorizer.rb
273
281
  - lib/rdoc/parser/simple.rb
274
282
  - lib/rdoc/parser/text.rb
283
+ - lib/rdoc/rbs_helper.rb
275
284
  - lib/rdoc/rd.rb
276
285
  - lib/rdoc/rd/block_parser.rb
277
286
  - lib/rdoc/rd/block_parser.ry
@@ -283,10 +292,11 @@ files:
283
292
  - lib/rdoc/ri/driver.rb
284
293
  - lib/rdoc/ri/formatter.rb
285
294
  - lib/rdoc/ri/paths.rb
295
+ - lib/rdoc/ri/servlet.rb
286
296
  - lib/rdoc/ri/store.rb
287
297
  - lib/rdoc/ri/task.rb
288
298
  - lib/rdoc/rubygems_hook.rb
289
- - lib/rdoc/servlet.rb
299
+ - lib/rdoc/server.rb
290
300
  - lib/rdoc/stats.rb
291
301
  - lib/rdoc/stats/normal.rb
292
302
  - lib/rdoc/stats/quiet.rb
@@ -299,10 +309,12 @@ files:
299
309
  - lib/rdoc/version.rb
300
310
  - lib/rubygems_plugin.rb
301
311
  - man/ri.1
312
+ - rdoc-logo.svg
302
313
  - rdoc.gemspec
303
314
  homepage: https://ruby.github.io/rdoc
304
315
  licenses:
305
316
  - Ruby
317
+ - GPL-2.0-only
306
318
  metadata:
307
319
  homepage_uri: https://ruby.github.io/rdoc
308
320
  source_code_uri: https://github.com/ruby/rdoc
@@ -310,20 +322,22 @@ metadata:
310
322
  rdoc_options:
311
323
  - "--main"
312
324
  - README.md
325
+ - "--copy-files"
326
+ - rdoc-logo.svg
313
327
  require_paths:
314
328
  - lib
315
329
  required_ruby_version: !ruby/object:Gem::Requirement
316
330
  requirements:
317
331
  - - ">="
318
332
  - !ruby/object:Gem::Version
319
- version: 2.6.0
333
+ version: 3.2.0
320
334
  required_rubygems_version: !ruby/object:Gem::Requirement
321
335
  requirements:
322
336
  - - ">="
323
337
  - !ruby/object:Gem::Version
324
338
  version: '2.2'
325
339
  requirements: []
326
- rubygems_version: 4.0.3
340
+ rubygems_version: 4.0.10
327
341
  specification_version: 4
328
342
  summary: RDoc produces HTML and command-line documentation for Ruby projects
329
343
  test_files: []
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
- ##
3
- # An anonymous class like:
4
- #
5
- # c = Class.new do end
6
- #
7
- # AnonClass is currently not used.
8
-
9
- class RDoc::AnonClass < RDoc::ClassModule
10
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
- ##
3
- # GhostMethod represents a method referenced only by a comment
4
-
5
- class RDoc::GhostMethod < RDoc::AnyMethod
6
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
- ##
3
- # MetaMethod represents a meta-programmed method
4
-
5
- class RDoc::MetaMethod < RDoc::AnyMethod
6
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
- class RDoc::Markup
3
-
4
- AttrChanger = Struct.new :turn_on, :turn_off # :nodoc:
5
-
6
- end
7
-
8
- ##
9
- # An AttrChanger records a change in attributes. It contains a bitmap of the
10
- # attributes to turn on, and a bitmap of those to turn off.
11
-
12
- class RDoc::Markup::AttrChanger
13
-
14
- def to_s # :nodoc:
15
- "Attr: +#{turn_on}/-#{turn_off}"
16
- end
17
-
18
- def inspect # :nodoc:
19
- '+%d/-%d' % [turn_on, turn_off]
20
- end
21
-
22
- end