rdoc 6.7.0 → 6.12.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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/ExampleMarkdown.md +2 -0
  3. data/ExampleRDoc.rdoc +2 -0
  4. data/History.rdoc +64 -62
  5. data/LICENSE.rdoc +2 -0
  6. data/README.rdoc +13 -0
  7. data/RI.md +842 -0
  8. data/TODO.rdoc +8 -7
  9. data/lib/rdoc/{alias.rb → code_object/alias.rb} +1 -1
  10. data/lib/rdoc/{any_method.rb → code_object/any_method.rb} +3 -3
  11. data/lib/rdoc/{attr.rb → code_object/attr.rb} +1 -1
  12. data/lib/rdoc/{class_module.rb → code_object/class_module.rb} +82 -12
  13. data/lib/rdoc/{constant.rb → code_object/constant.rb} +1 -1
  14. data/lib/rdoc/{context → code_object/context}/section.rb +10 -68
  15. data/lib/rdoc/{method_attr.rb → code_object/method_attr.rb} +17 -5
  16. data/lib/rdoc/{top_level.rb → code_object/top_level.rb} +5 -5
  17. data/lib/rdoc/code_object.rb +6 -1
  18. data/lib/rdoc/comment.rb +11 -1
  19. data/lib/rdoc/generator/darkfish.rb +41 -3
  20. data/lib/rdoc/generator/pot/message_extractor.rb +1 -1
  21. data/lib/rdoc/generator/pot/po_entry.rb +1 -1
  22. data/lib/rdoc/generator/template/darkfish/_head.rhtml +23 -0
  23. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +1 -0
  24. data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +20 -11
  25. data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +3 -8
  26. data/lib/rdoc/generator/template/darkfish/_sidebar_toggle.rhtml +3 -0
  27. data/lib/rdoc/generator/template/darkfish/class.rhtml +69 -43
  28. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +380 -399
  29. data/lib/rdoc/generator/template/darkfish/index.rhtml +11 -10
  30. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +24 -1
  31. data/lib/rdoc/generator/template/darkfish/page.rhtml +5 -5
  32. data/lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml +10 -8
  33. data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +5 -2
  34. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +11 -0
  35. data/lib/rdoc/markdown.kpeg +1 -1
  36. data/lib/rdoc/markdown.rb +21 -11
  37. data/lib/rdoc/markup/attribute_manager.rb +2 -2
  38. data/lib/rdoc/markup/formatter.rb +19 -12
  39. data/lib/rdoc/markup/pre_process.rb +26 -6
  40. data/lib/rdoc/markup/to_bs.rb +1 -1
  41. data/lib/rdoc/markup/to_html.rb +1 -1
  42. data/lib/rdoc/markup/to_html_crossref.rb +63 -12
  43. data/lib/rdoc/markup/to_rdoc.rb +5 -5
  44. data/lib/rdoc/markup.rb +18 -13
  45. data/lib/rdoc/options.rb +78 -12
  46. data/lib/rdoc/parser/c.rb +26 -2
  47. data/lib/rdoc/parser/changelog.rb +5 -4
  48. data/lib/rdoc/parser/prism_ruby.rb +1099 -0
  49. data/lib/rdoc/parser/ripper_state_lex.rb +7 -305
  50. data/lib/rdoc/parser/ruby.rb +16 -7
  51. data/lib/rdoc/parser/simple.rb +1 -1
  52. data/lib/rdoc/parser.rb +5 -4
  53. data/lib/rdoc/rd/block_parser.rb +3 -3
  54. data/lib/rdoc/rd/inline_parser.rb +3 -3
  55. data/lib/rdoc/rdoc.rb +6 -3
  56. data/lib/rdoc/ri/driver.rb +74 -29
  57. data/lib/rdoc/rubygems_hook.rb +90 -8
  58. data/lib/rdoc/store.rb +12 -0
  59. data/lib/rdoc/task.rb +2 -3
  60. data/lib/rdoc/tom_doc.rb +1 -7
  61. data/lib/rdoc/version.rb +1 -1
  62. data/lib/rdoc.rb +22 -24
  63. data/lib/rubygems_plugin.rb +23 -0
  64. metadata +27 -26
  65. data/RI.rdoc +0 -57
  66. data/lib/rdoc/generator/template/darkfish/.document +0 -0
  67. data/lib/rdoc/generator/template/json_index/.document +0 -1
  68. /data/lib/rdoc/{anon_class.rb → code_object/anon_class.rb} +0 -0
  69. /data/lib/rdoc/{context.rb → code_object/context.rb} +0 -0
  70. /data/lib/rdoc/{extend.rb → code_object/extend.rb} +0 -0
  71. /data/lib/rdoc/{ghost_method.rb → code_object/ghost_method.rb} +0 -0
  72. /data/lib/rdoc/{include.rb → code_object/include.rb} +0 -0
  73. /data/lib/rdoc/{meta_method.rb → code_object/meta_method.rb} +0 -0
  74. /data/lib/rdoc/{mixin.rb → code_object/mixin.rb} +0 -0
  75. /data/lib/rdoc/{normal_class.rb → code_object/normal_class.rb} +0 -0
  76. /data/lib/rdoc/{normal_module.rb → code_object/normal_module.rb} +0 -0
  77. /data/lib/rdoc/{require.rb → code_object/require.rb} +0 -0
  78. /data/lib/rdoc/{single_class.rb → code_object/single_class.rb} +0 -0
@@ -7,307 +7,12 @@ require 'ripper'
7
7
  class RDoc::Parser::RipperStateLex
8
8
  # :stopdoc:
9
9
 
10
- # TODO: Remove this constants after Ruby 2.4 EOL
11
- RIPPER_HAS_LEX_STATE = Ripper::Filter.method_defined?(:state)
12
-
13
10
  Token = Struct.new(:line_no, :char_no, :kind, :text, :state)
14
11
 
15
- EXPR_NONE = 0
16
- EXPR_BEG = 1
17
- EXPR_END = 2
18
- EXPR_ENDARG = 4
19
- EXPR_ENDFN = 8
20
- EXPR_ARG = 16
21
- EXPR_CMDARG = 32
22
- EXPR_MID = 64
23
- EXPR_FNAME = 128
24
- EXPR_DOT = 256
25
- EXPR_CLASS = 512
26
- EXPR_LABEL = 1024
27
- EXPR_LABELED = 2048
28
- EXPR_FITEM = 4096
29
- EXPR_VALUE = EXPR_BEG
30
- EXPR_BEG_ANY = (EXPR_BEG | EXPR_MID | EXPR_CLASS)
31
- EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG)
32
- EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN)
33
-
34
- class InnerStateLex < Ripper::Filter
35
- attr_accessor :lex_state
36
-
37
- def initialize(code)
38
- @lex_state = EXPR_BEG
39
- @in_fname = false
40
- @continue = false
41
- reset
42
- super(code)
43
- end
44
-
45
- def reset
46
- @command_start = false
47
- @cmd_state = @command_start
48
- end
49
-
50
- def on_nl(tok, data)
51
- case @lex_state
52
- when EXPR_FNAME, EXPR_DOT
53
- @continue = true
54
- else
55
- @continue = false
56
- @lex_state = EXPR_BEG unless (EXPR_LABEL & @lex_state) != 0
57
- end
58
- data << Token.new(lineno, column, __method__, tok, @lex_state)
59
- end
60
-
61
- def on_ignored_nl(tok, data)
62
- case @lex_state
63
- when EXPR_FNAME, EXPR_DOT
64
- @continue = true
65
- else
66
- @continue = false
67
- @lex_state = EXPR_BEG unless (EXPR_LABEL & @lex_state) != 0
68
- end
69
- data << Token.new(lineno, column, __method__, tok, @lex_state)
70
- end
71
-
72
- def on_op(tok, data)
73
- case tok
74
- when '&', '|', '!', '!=', '!~'
75
- case @lex_state
76
- when EXPR_FNAME, EXPR_DOT
77
- @lex_state = EXPR_ARG
78
- else
79
- @lex_state = EXPR_BEG
80
- end
81
- when '<<'
82
- # TODO next token?
83
- case @lex_state
84
- when EXPR_FNAME, EXPR_DOT
85
- @lex_state = EXPR_ARG
86
- else
87
- @lex_state = EXPR_BEG
88
- end
89
- when '?'
90
- @lex_state = EXPR_BEG
91
- when '&&', '||', '+=', '-=', '*=', '**=',
92
- '&=', '|=', '^=', '<<=', '>>=', '||=', '&&='
93
- @lex_state = EXPR_BEG
94
- when '::'
95
- case @lex_state
96
- when EXPR_ARG, EXPR_CMDARG
97
- @lex_state = EXPR_DOT
98
- when EXPR_FNAME, EXPR_DOT
99
- @lex_state = EXPR_ARG
100
- else
101
- @lex_state = EXPR_BEG
102
- end
103
- else
104
- case @lex_state
105
- when EXPR_FNAME, EXPR_DOT
106
- @lex_state = EXPR_ARG
107
- else
108
- @lex_state = EXPR_BEG
109
- end
110
- end
111
- data << Token.new(lineno, column, __method__, tok, @lex_state)
112
- end
113
-
114
- def on_kw(tok, data)
115
- case tok
116
- when 'class'
117
- @lex_state = EXPR_CLASS
118
- @in_fname = true
119
- when 'def'
120
- @lex_state = EXPR_FNAME
121
- @continue = true
122
- @in_fname = true
123
- when 'if', 'unless', 'while', 'until'
124
- if ((EXPR_MID | EXPR_END | EXPR_ENDARG | EXPR_ENDFN | EXPR_ARG | EXPR_CMDARG) & @lex_state) != 0 # postfix if
125
- @lex_state = EXPR_BEG | EXPR_LABEL
126
- else
127
- @lex_state = EXPR_BEG
128
- end
129
- when 'begin', 'case', 'when'
130
- @lex_state = EXPR_BEG
131
- when 'return', 'break'
132
- @lex_state = EXPR_MID
133
- else
134
- if @lex_state == EXPR_FNAME
135
- @lex_state = EXPR_END
136
- else
137
- @lex_state = EXPR_END
138
- end
139
- end
140
- data << Token.new(lineno, column, __method__, tok, @lex_state)
141
- end
142
-
143
- def on_tstring_beg(tok, data)
144
- @lex_state = EXPR_BEG
145
- data << Token.new(lineno, column, __method__, tok, @lex_state)
146
- end
147
-
148
- def on_tstring_end(tok, data)
149
- @lex_state = EXPR_END | EXPR_ENDARG
150
- data << Token.new(lineno, column, __method__, tok, @lex_state)
151
- end
152
-
153
- def on_CHAR(tok, data)
154
- @lex_state = EXPR_END
155
- data << Token.new(lineno, column, __method__, tok, @lex_state)
156
- end
157
-
158
- def on_period(tok, data)
159
- @lex_state = EXPR_DOT
160
- data << Token.new(lineno, column, __method__, tok, @lex_state)
161
- end
162
-
163
- def on_int(tok, data)
164
- @lex_state = EXPR_END | EXPR_ENDARG
165
- data << Token.new(lineno, column, __method__, tok, @lex_state)
166
- end
167
-
168
- def on_float(tok, data)
169
- @lex_state = EXPR_END | EXPR_ENDARG
170
- data << Token.new(lineno, column, __method__, tok, @lex_state)
171
- end
172
-
173
- def on_rational(tok, data)
174
- @lex_state = EXPR_END | EXPR_ENDARG
175
- data << Token.new(lineno, column, __method__, tok, @lex_state)
176
- end
177
-
178
- def on_imaginary(tok, data)
179
- @lex_state = EXPR_END | EXPR_ENDARG
180
- data << Token.new(lineno, column, __method__, tok, @lex_state)
181
- end
182
-
183
- def on_symbeg(tok, data)
184
- @lex_state = EXPR_FNAME
185
- @continue = true
186
- @in_fname = true
187
- data << Token.new(lineno, column, __method__, tok, @lex_state)
188
- end
189
-
190
- private def on_variables(event, tok, data)
191
- if @in_fname
192
- @lex_state = EXPR_ENDFN
193
- @in_fname = false
194
- @continue = false
195
- elsif @continue
196
- case @lex_state
197
- when EXPR_DOT
198
- @lex_state = EXPR_ARG
199
- else
200
- @lex_state = EXPR_ENDFN
201
- @continue = false
202
- end
203
- else
204
- @lex_state = EXPR_CMDARG
205
- end
206
- data << Token.new(lineno, column, event, tok, @lex_state)
207
- end
208
-
209
- def on_ident(tok, data)
210
- on_variables(__method__, tok, data)
211
- end
212
-
213
- def on_ivar(tok, data)
214
- @lex_state = EXPR_END
215
- on_variables(__method__, tok, data)
216
- end
217
-
218
- def on_cvar(tok, data)
219
- @lex_state = EXPR_END
220
- on_variables(__method__, tok, data)
221
- end
222
-
223
- def on_gvar(tok, data)
224
- @lex_state = EXPR_END
225
- on_variables(__method__, tok, data)
226
- end
227
-
228
- def on_backref(tok, data)
229
- @lex_state = EXPR_END
230
- on_variables(__method__, tok, data)
231
- end
232
-
233
- def on_lparen(tok, data)
234
- @lex_state = EXPR_LABEL | EXPR_BEG
235
- data << Token.new(lineno, column, __method__, tok, @lex_state)
236
- end
237
-
238
- def on_rparen(tok, data)
239
- @lex_state = EXPR_ENDFN
240
- data << Token.new(lineno, column, __method__, tok, @lex_state)
241
- end
242
-
243
- def on_lbrace(tok, data)
244
- @lex_state = EXPR_LABEL | EXPR_BEG
245
- data << Token.new(lineno, column, __method__, tok, @lex_state)
246
- end
247
-
248
- def on_rbrace(tok, data)
249
- @lex_state = EXPR_ENDARG
250
- data << Token.new(lineno, column, __method__, tok, @lex_state)
251
- end
252
-
253
- def on_lbracket(tok, data)
254
- @lex_state = EXPR_LABEL | EXPR_BEG
255
- data << Token.new(lineno, column, __method__, tok, @lex_state)
256
- end
257
-
258
- def on_rbracket(tok, data)
259
- @lex_state = EXPR_ENDARG
260
- data << Token.new(lineno, column, __method__, tok, @lex_state)
261
- end
262
-
263
- def on_const(tok, data)
264
- case @lex_state
265
- when EXPR_FNAME
266
- @lex_state = EXPR_ENDFN
267
- when EXPR_CLASS, EXPR_CMDARG, EXPR_MID
268
- @lex_state = EXPR_ARG
269
- else
270
- @lex_state = EXPR_CMDARG
271
- end
272
- data << Token.new(lineno, column, __method__, tok, @lex_state)
273
- end
274
-
275
- def on_sp(tok, data)
276
- data << Token.new(lineno, column, __method__, tok, @lex_state)
277
- end
278
-
279
- def on_comma(tok, data)
280
- @lex_state = EXPR_BEG | EXPR_LABEL if (EXPR_ARG_ANY & @lex_state) != 0
281
- data << Token.new(lineno, column, __method__, tok, @lex_state)
282
- end
283
-
284
- def on_comment(tok, data)
285
- @lex_state = EXPR_BEG unless (EXPR_LABEL & @lex_state) != 0
286
- data << Token.new(lineno, column, __method__, tok, @lex_state)
287
- end
288
-
289
- def on_ignored_sp(tok, data)
290
- @lex_state = EXPR_BEG unless (EXPR_LABEL & @lex_state) != 0
291
- data << Token.new(lineno, column, __method__, tok, @lex_state)
292
- end
293
-
294
- def on_heredoc_beg(tok, data)
295
- data << Token.new(lineno, column, __method__, tok, @lex_state)
296
- @lex_state = EXPR_END
297
- data
298
- end
299
-
300
- def on_heredoc_end(tok, data)
301
- data << Token.new(lineno, column, __method__, tok, @lex_state)
302
- @lex_state = EXPR_BEG
303
- data
304
- end
305
-
306
- def on_default(event, tok, data)
307
- reset
308
- data << Token.new(lineno, column, event, tok, @lex_state)
309
- end
310
- end unless RIPPER_HAS_LEX_STATE
12
+ EXPR_END = Ripper::EXPR_END
13
+ EXPR_ENDFN = Ripper::EXPR_ENDFN
14
+ EXPR_ARG = Ripper::EXPR_ARG
15
+ EXPR_FNAME = Ripper::EXPR_FNAME
311
16
 
312
17
  class InnerStateLex < Ripper::Filter
313
18
  def initialize(code)
@@ -317,7 +22,7 @@ class RDoc::Parser::RipperStateLex
317
22
  def on_default(event, tok, data)
318
23
  data << Token.new(lineno, column, event, tok, state)
319
24
  end
320
- end if RIPPER_HAS_LEX_STATE
25
+ end
321
26
 
322
27
  def get_squashed_tk
323
28
  if @buf.empty?
@@ -333,9 +38,8 @@ class RDoc::Parser::RipperStateLex
333
38
  tk = get_string_tk(tk)
334
39
  when :on_backtick then
335
40
  if (tk[:state] & (EXPR_FNAME | EXPR_ENDFN)) != 0
336
- @inner_lex.lex_state = EXPR_ARG unless RIPPER_HAS_LEX_STATE
337
41
  tk[:kind] = :on_ident
338
- tk[:state] = Ripper::Lexer.const_defined?(:State) ? Ripper::Lexer::State.new(EXPR_ARG) : EXPR_ARG
42
+ tk[:state] = Ripper::Lexer::State.new(EXPR_ARG)
339
43
  else
340
44
  tk = get_string_tk(tk)
341
45
  end
@@ -345,7 +49,6 @@ class RDoc::Parser::RipperStateLex
345
49
  tk = get_embdoc_tk(tk)
346
50
  when :on_heredoc_beg then
347
51
  @heredoc_queue << retrieve_heredoc_info(tk)
348
- @inner_lex.lex_state = EXPR_END unless RIPPER_HAS_LEX_STATE
349
52
  when :on_nl, :on_ignored_nl, :on_comment, :on_heredoc_end then
350
53
  if !@heredoc_queue.empty?
351
54
  get_heredoc_tk(*@heredoc_queue.shift)
@@ -549,8 +252,7 @@ class RDoc::Parser::RipperStateLex
549
252
  private def get_op_tk(tk)
550
253
  redefinable_operators = %w[! != !~ % & * ** + +@ - -@ / < << <= <=> == === =~ > >= >> [] []= ^ ` | ~]
551
254
  if redefinable_operators.include?(tk[:text]) and tk[:state] == EXPR_ARG then
552
- @inner_lex.lex_state = EXPR_ARG unless RIPPER_HAS_LEX_STATE
553
- tk[:state] = Ripper::Lexer.const_defined?(:State) ? Ripper::Lexer::State.new(EXPR_ARG) : EXPR_ARG
255
+ tk[:state] = Ripper::Lexer::State.new(EXPR_ARG)
554
256
  tk[:kind] = :on_ident
555
257
  elsif tk[:text] =~ /^[-+]$/ then
556
258
  tk_ahead = get_squashed_tk
@@ -8,6 +8,15 @@
8
8
  # by Keiju ISHITSUKA (Nippon Rational Inc.)
9
9
  #
10
10
 
11
+ if ENV['RDOC_USE_PRISM_PARSER']
12
+ require 'rdoc/parser/prism_ruby'
13
+ RDoc::Parser.const_set(:Ruby, RDoc::Parser::PrismRuby)
14
+ puts "========================================================================="
15
+ puts "RDoc is using the experimental Prism parser to generate the documentation"
16
+ puts "========================================================================="
17
+ return
18
+ end
19
+
11
20
  require 'ripper'
12
21
  require_relative 'ripper_state_lex'
13
22
 
@@ -161,7 +170,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
161
170
  ##
162
171
  # Creates a new Ruby parser.
163
172
 
164
- def initialize(top_level, file_name, content, options, stats)
173
+ def initialize(top_level, content, options, stats)
165
174
  super
166
175
 
167
176
  content = handle_tab_width(content)
@@ -513,7 +522,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
513
522
  when :on_comment, :on_embdoc then
514
523
  @read.pop
515
524
  if :on_nl == end_token[:kind] and "\n" == tk[:text][-1] and
516
- (!continue or (tk[:state] & RDoc::Parser::RipperStateLex::EXPR_LABEL) != 0) then
525
+ (!continue or (tk[:state] & Ripper::EXPR_LABEL) != 0) then
517
526
  break if !continue and nest <= 0
518
527
  end
519
528
  when :on_comma then
@@ -526,7 +535,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
526
535
  nest += 1
527
536
  when 'if', 'unless', 'while', 'until', 'rescue'
528
537
  # postfix if/unless/while/until/rescue must be EXPR_LABEL
529
- nest += 1 unless (tk[:state] & RDoc::Parser::RipperStateLex::EXPR_LABEL) != 0
538
+ nest += 1 unless (tk[:state] & Ripper::EXPR_LABEL) != 0
530
539
  when 'end'
531
540
  nest -= 1
532
541
  break if nest == 0
@@ -1041,7 +1050,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
1041
1050
  elsif (:on_kw == tk[:kind] && 'def' == tk[:text]) then
1042
1051
  nest += 1
1043
1052
  elsif (:on_kw == tk[:kind] && %w{do if unless case begin}.include?(tk[:text])) then
1044
- if (tk[:state] & RDoc::Parser::RipperStateLex::EXPR_LABEL) == 0
1053
+ if (tk[:state] & Ripper::EXPR_LABEL) == 0
1045
1054
  nest += 1
1046
1055
  end
1047
1056
  elsif [:on_rparen, :on_rbrace, :on_rbracket].include?(tk[:kind]) ||
@@ -1662,7 +1671,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
1662
1671
  when :on_comment, :on_embdoc then
1663
1672
  @read.pop
1664
1673
  if :on_nl == end_token[:kind] and "\n" == tk[:text][-1] and
1665
- (!continue or (tk[:state] & RDoc::Parser::RipperStateLex::EXPR_LABEL) != 0) then
1674
+ (!continue or (tk[:state] & Ripper::EXPR_LABEL) != 0) then
1666
1675
  if method && method.block_params.nil? then
1667
1676
  unget_tk tk
1668
1677
  read_documentation_modifiers method, modifiers
@@ -1882,7 +1891,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
1882
1891
  end
1883
1892
 
1884
1893
  when 'until', 'while' then
1885
- if (tk[:state] & RDoc::Parser::RipperStateLex::EXPR_LABEL) == 0
1894
+ if (tk[:state] & Ripper::EXPR_LABEL) == 0
1886
1895
  nest += 1
1887
1896
  skip_optional_do_after_expression
1888
1897
  end
@@ -1898,7 +1907,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
1898
1907
  skip_optional_do_after_expression
1899
1908
 
1900
1909
  when 'case', 'do', 'if', 'unless', 'begin' then
1901
- if (tk[:state] & RDoc::Parser::RipperStateLex::EXPR_LABEL) == 0
1910
+ if (tk[:state] & Ripper::EXPR_LABEL) == 0
1902
1911
  nest += 1
1903
1912
  end
1904
1913
 
@@ -14,7 +14,7 @@ class RDoc::Parser::Simple < RDoc::Parser
14
14
  ##
15
15
  # Prepare to parse a plain file
16
16
 
17
- def initialize(top_level, file_name, content, options, stats)
17
+ def initialize(top_level, content, options, stats)
18
18
  super
19
19
 
20
20
  preprocess = RDoc::Markup::PreProcess.new @file_name, @options.rdoc_include
data/lib/rdoc/parser.rb CHANGED
@@ -166,7 +166,8 @@ class RDoc::Parser
166
166
  # Finds and instantiates the correct parser for the given +file_name+ and
167
167
  # +content+.
168
168
 
169
- def self.for top_level, file_name, content, options, stats
169
+ def self.for top_level, content, options, stats
170
+ file_name = top_level.absolute_name
170
171
  return if binary? file_name
171
172
 
172
173
  parser = use_markup content
@@ -190,7 +191,7 @@ class RDoc::Parser
190
191
 
191
192
  content = remove_modeline content
192
193
 
193
- parser.new top_level, file_name, content, options, stats
194
+ parser.new top_level, content, options, stats
194
195
  rescue SystemCallError
195
196
  nil
196
197
  end
@@ -251,12 +252,12 @@ class RDoc::Parser
251
252
  # RDoc::Markup::PreProcess object is created which allows processing of
252
253
  # directives.
253
254
 
254
- def initialize top_level, file_name, content, options, stats
255
+ def initialize top_level, content, options, stats
255
256
  @top_level = top_level
256
257
  @top_level.parser = self.class
257
258
  @store = @top_level.store
258
259
 
259
- @file_name = file_name
260
+ @file_name = top_level.absolute_name
260
261
  @content = content
261
262
  @options = options
262
263
  @stats = stats
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
3
  # DO NOT MODIFY!!!!
4
- # This file is automatically generated by Racc 1.8.0
4
+ # This file is automatically generated by Racc 1.8.1
5
5
  # from Racc grammar file "block_parser.ry".
6
6
  #
7
7
 
@@ -23,7 +23,7 @@ unless $".find {|p| p.end_with?('/racc/info.rb')}
23
23
  $".push "#{__dir__}/racc/info.rb"
24
24
 
25
25
  module Racc
26
- VERSION = '1.8.0'
26
+ VERSION = '1.8.1'
27
27
  Version = VERSION
28
28
  Copyright = 'Copyright (c) 1999-2006 Minero Aoki'
29
29
  end
@@ -38,7 +38,7 @@ unless defined?(::ParseError)
38
38
  ParseError = Racc::ParseError # :nodoc:
39
39
  end
40
40
 
41
- # Racc is a LALR(1) parser generator.
41
+ # Racc is an LALR(1) parser generator.
42
42
  # It is written in Ruby itself, and generates Ruby programs.
43
43
  #
44
44
  # == Command-line Reference
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
3
  # DO NOT MODIFY!!!!
4
- # This file is automatically generated by Racc 1.8.0
4
+ # This file is automatically generated by Racc 1.8.1
5
5
  # from Racc grammar file "inline_parser.ry".
6
6
  #
7
7
 
@@ -23,7 +23,7 @@ unless $".find {|p| p.end_with?('/racc/info.rb')}
23
23
  $".push "#{__dir__}/racc/info.rb"
24
24
 
25
25
  module Racc
26
- VERSION = '1.8.0'
26
+ VERSION = '1.8.1'
27
27
  Version = VERSION
28
28
  Copyright = 'Copyright (c) 1999-2006 Minero Aoki'
29
29
  end
@@ -38,7 +38,7 @@ unless defined?(::ParseError)
38
38
  ParseError = Racc::ParseError # :nodoc:
39
39
  end
40
40
 
41
- # Racc is a LALR(1) parser generator.
41
+ # Racc is an LALR(1) parser generator.
42
42
  # It is written in Ruby itself, and generates Ruby programs.
43
43
  #
44
44
  # == Command-line Reference
data/lib/rdoc/rdoc.rb CHANGED
@@ -356,7 +356,7 @@ option)
356
356
 
357
357
  top_level = @store.add_file filename, relative_name: relative_path.to_s
358
358
 
359
- parser = RDoc::Parser.for top_level, filename, content, @options, @stats
359
+ parser = RDoc::Parser.for top_level, content, @options, @stats
360
360
 
361
361
  return unless parser
362
362
 
@@ -395,7 +395,6 @@ The internal error was:
395
395
  $stderr.puts e.backtrace.join("\n\t") if $DEBUG_RDOC
396
396
 
397
397
  raise e
398
- nil
399
398
  end
400
399
 
401
400
  ##
@@ -407,6 +406,7 @@ The internal error was:
407
406
 
408
407
  return [] if file_list.empty?
409
408
 
409
+ # This workaround can be removed after the :main: directive is removed
410
410
  original_options = @options.dup
411
411
  @stats.begin_adding
412
412
 
@@ -415,6 +415,8 @@ The internal error was:
415
415
  parse_file filename
416
416
  end.compact
417
417
 
418
+ @store.resolve_c_superclasses
419
+
418
420
  @stats.done_adding
419
421
  @options = original_options
420
422
 
@@ -520,6 +522,7 @@ The internal error was:
520
522
  Dir.chdir @options.op_dir do
521
523
  unless @options.quiet then
522
524
  $stderr.puts "\nGenerating #{@generator.class.name.sub(/^.*::/, '')} format into #{Dir.pwd}..."
525
+ $stderr.puts "\nYou can visit the home page at: \e]8;;file://#{Dir.pwd}/index.html\e\\file://#{Dir.pwd}/index.html\e]8;;\e\\"
523
526
  end
524
527
 
525
528
  @generator.generate
@@ -544,7 +547,7 @@ end
544
547
  begin
545
548
  require 'rubygems'
546
549
 
547
- rdoc_extensions = Gem.find_files 'rdoc/discover'
550
+ rdoc_extensions = Gem.find_latest_files 'rdoc/discover'
548
551
 
549
552
  rdoc_extensions.each do |extension|
550
553
  begin