rdoc 6.3.3 → 6.6.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.rdoc +1 -2
  3. data/LEGAL.rdoc +1 -1
  4. data/README.rdoc +2 -2
  5. data/TODO.rdoc +1 -1
  6. data/exe/rdoc +0 -1
  7. data/lib/rdoc/alias.rb +0 -1
  8. data/lib/rdoc/anon_class.rb +0 -1
  9. data/lib/rdoc/any_method.rb +21 -3
  10. data/lib/rdoc/attr.rb +0 -1
  11. data/lib/rdoc/class_module.rb +0 -1
  12. data/lib/rdoc/code_objects.rb +1 -2
  13. data/lib/rdoc/comment.rb +20 -41
  14. data/lib/rdoc/constant.rb +0 -1
  15. data/lib/rdoc/context/section.rb +2 -1
  16. data/lib/rdoc/context.rb +1 -3
  17. data/lib/rdoc/cross_reference.rb +45 -19
  18. data/lib/rdoc/encoding.rb +1 -17
  19. data/lib/rdoc/erb_partial.rb +0 -1
  20. data/lib/rdoc/erbio.rb +2 -7
  21. data/lib/rdoc/extend.rb +0 -1
  22. data/lib/rdoc/generator/darkfish.rb +4 -8
  23. data/lib/rdoc/generator/json_index.rb +2 -2
  24. data/lib/rdoc/generator/markup.rb +1 -2
  25. data/lib/rdoc/generator/pot.rb +1 -0
  26. data/lib/rdoc/generator/ri.rb +0 -1
  27. data/lib/rdoc/generator/template/darkfish/_head.rhtml +11 -13
  28. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +27 -3
  29. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +22 -2
  30. data/lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml +1 -1
  31. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +25 -4
  32. data/lib/rdoc/generator/template/darkfish/class.rhtml +28 -20
  33. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +55 -7
  34. data/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf +0 -0
  35. data/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf +0 -0
  36. data/lib/rdoc/generator/template/darkfish/index.rhtml +1 -1
  37. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +14 -1
  38. data/lib/rdoc/generator/template/darkfish/js/search.js +4 -4
  39. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +7 -6
  40. data/lib/rdoc/generator/template/json_index/js/navigation.js +8 -8
  41. data/lib/rdoc/generator.rb +5 -5
  42. data/lib/rdoc/ghost_method.rb +0 -1
  43. data/lib/rdoc/i18n.rb +1 -1
  44. data/lib/rdoc/include.rb +0 -1
  45. data/lib/rdoc/known_classes.rb +5 -4
  46. data/lib/rdoc/markdown/entities.rb +0 -1
  47. data/lib/rdoc/markdown/literals.kpeg +0 -2
  48. data/lib/rdoc/markdown/literals.rb +73 -35
  49. data/lib/rdoc/markdown.kpeg +26 -19
  50. data/lib/rdoc/markdown.rb +326 -227
  51. data/lib/rdoc/markup/attr_changer.rb +0 -1
  52. data/lib/rdoc/markup/attr_span.rb +0 -1
  53. data/lib/rdoc/markup/attribute_manager.rb +32 -36
  54. data/lib/rdoc/markup/attributes.rb +0 -1
  55. data/lib/rdoc/markup/blank_line.rb +0 -1
  56. data/lib/rdoc/markup/block_quote.rb +0 -1
  57. data/lib/rdoc/markup/document.rb +0 -1
  58. data/lib/rdoc/markup/formatter.rb +1 -2
  59. data/lib/rdoc/markup/hard_break.rb +0 -1
  60. data/lib/rdoc/markup/heading.rb +0 -1
  61. data/lib/rdoc/markup/include.rb +0 -1
  62. data/lib/rdoc/markup/indented_paragraph.rb +0 -1
  63. data/lib/rdoc/markup/list.rb +0 -1
  64. data/lib/rdoc/markup/list_item.rb +0 -1
  65. data/lib/rdoc/markup/paragraph.rb +0 -1
  66. data/lib/rdoc/markup/parser.rb +17 -7
  67. data/lib/rdoc/markup/pre_process.rb +2 -0
  68. data/lib/rdoc/markup/raw.rb +0 -1
  69. data/lib/rdoc/markup/regexp_handling.rb +0 -1
  70. data/lib/rdoc/markup/rule.rb +0 -1
  71. data/lib/rdoc/markup/table.rb +11 -2
  72. data/lib/rdoc/markup/to_ansi.rb +0 -1
  73. data/lib/rdoc/markup/to_html.rb +27 -19
  74. data/lib/rdoc/markup/to_html_crossref.rb +1 -1
  75. data/lib/rdoc/markup/to_html_snippet.rb +3 -1
  76. data/lib/rdoc/markup/to_joined_paragraph.rb +2 -3
  77. data/lib/rdoc/markup/to_label.rb +1 -2
  78. data/lib/rdoc/markup/to_markdown.rb +0 -1
  79. data/lib/rdoc/markup/to_rdoc.rb +3 -21
  80. data/lib/rdoc/markup/to_table_of_contents.rb +0 -1
  81. data/lib/rdoc/markup/to_test.rb +0 -1
  82. data/lib/rdoc/markup/to_tt_only.rb +0 -1
  83. data/lib/rdoc/markup/verbatim.rb +0 -1
  84. data/lib/rdoc/markup.rb +35 -667
  85. data/lib/rdoc/meta_method.rb +0 -1
  86. data/lib/rdoc/method_attr.rb +1 -2
  87. data/lib/rdoc/mixin.rb +0 -1
  88. data/lib/rdoc/normal_class.rb +1 -2
  89. data/lib/rdoc/normal_module.rb +1 -2
  90. data/lib/rdoc/options.rb +66 -21
  91. data/lib/rdoc/parser/c.rb +125 -124
  92. data/lib/rdoc/parser/changelog.rb +15 -1
  93. data/lib/rdoc/parser/markdown.rb +0 -2
  94. data/lib/rdoc/parser/rd.rb +0 -1
  95. data/lib/rdoc/parser/ripper_state_lex.rb +11 -1
  96. data/lib/rdoc/parser/ruby.rb +50 -14
  97. data/lib/rdoc/parser/ruby_tools.rb +0 -2
  98. data/lib/rdoc/parser/text.rb +0 -1
  99. data/lib/rdoc/parser.rb +19 -2
  100. data/lib/rdoc/rd/block_parser.rb +666 -12
  101. data/lib/rdoc/rd/block_parser.ry +13 -9
  102. data/lib/rdoc/rd/inline.rb +0 -1
  103. data/lib/rdoc/rd/inline_parser.rb +653 -3
  104. data/lib/rdoc/rd.rb +3 -4
  105. data/lib/rdoc/rdoc.rb +21 -37
  106. data/lib/rdoc/require.rb +0 -1
  107. data/lib/rdoc/ri/driver.rb +31 -90
  108. data/lib/rdoc/ri/store.rb +0 -1
  109. data/lib/rdoc/ri.rb +4 -5
  110. data/lib/rdoc/rubygems_hook.rb +4 -2
  111. data/lib/rdoc/servlet.rb +1 -1
  112. data/lib/rdoc/single_class.rb +5 -1
  113. data/lib/rdoc/stats/quiet.rb +0 -1
  114. data/lib/rdoc/stats/verbose.rb +0 -2
  115. data/lib/rdoc/stats.rb +3 -4
  116. data/lib/rdoc/store.rb +29 -19
  117. data/lib/rdoc/task.rb +31 -5
  118. data/lib/rdoc/text.rb +22 -4
  119. data/lib/rdoc/token_stream.rb +1 -2
  120. data/lib/rdoc/top_level.rb +3 -1
  121. data/lib/rdoc/version.rb +3 -1
  122. data/lib/rdoc.rb +58 -46
  123. metadata +13 -18
  124. data/Gemfile +0 -12
  125. data/Rakefile +0 -101
  126. data/bin/console +0 -7
  127. data/bin/setup +0 -6
  128. data/rdoc.gemspec +0 -249
@@ -216,12 +216,22 @@ class RDoc::Parser::ChangeLog < RDoc::Parser
216
216
  @top_level
217
217
  end
218
218
 
219
+ ##
220
+ # The extension for Git commit log
221
+
219
222
  module Git
223
+ ##
224
+ # Parses auxiliary info. Currentry `base-url` to expand
225
+ # references is effective.
226
+
220
227
  def parse_info(info)
221
228
  /^\s*base-url\s*=\s*(.*\S)/ =~ info
222
229
  @base_url = $1
223
230
  end
224
231
 
232
+ ##
233
+ # Parses the entries in the Git commit logs
234
+
225
235
  def parse_entries
226
236
  entries = []
227
237
 
@@ -244,6 +254,11 @@ class RDoc::Parser::ChangeLog < RDoc::Parser
244
254
  entries
245
255
  end
246
256
 
257
+ ##
258
+ # Returns a list of ChangeLog entries as
259
+ # RDoc::Parser::ChangeLog::Git::LogEntry list for the given
260
+ # +entries+.
261
+
247
262
  def create_entries entries
248
263
  # git log entries have no strictly itemized style like the old
249
264
  # style, just assume Markdown.
@@ -332,4 +347,3 @@ class RDoc::Parser::ChangeLog < RDoc::Parser
332
347
  end
333
348
  end
334
349
  end
335
-
@@ -20,5 +20,3 @@ class RDoc::Parser::Markdown < RDoc::Parser
20
20
  end
21
21
 
22
22
  end
23
-
24
-
@@ -20,4 +20,3 @@ class RDoc::Parser::RD < RDoc::Parser
20
20
  end
21
21
 
22
22
  end
23
-
@@ -1,7 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
  require 'ripper'
3
3
 
4
+ ##
5
+ # Wrapper for Ripper lex states
6
+
4
7
  class RDoc::Parser::RipperStateLex
8
+ # :stopdoc:
9
+
5
10
  # TODO: Remove this constants after Ruby 2.4 EOL
6
11
  RIPPER_HAS_LEX_STATE = Ripper::Filter.method_defined?(:state)
7
12
 
@@ -368,7 +373,7 @@ class RDoc::Parser::RipperStateLex
368
373
  private def get_symbol_tk(tk)
369
374
  is_symbol = true
370
375
  symbol_tk = Token.new(tk.line_no, tk.char_no, :on_symbol)
371
- if ":'" == tk[:text] or ':"' == tk[:text]
376
+ if ":'" == tk[:text] or ':"' == tk[:text] or tk[:text].start_with?('%s')
372
377
  tk1 = get_string_tk(tk)
373
378
  symbol_tk[:text] = tk1[:text]
374
379
  symbol_tk[:state] = tk1[:state]
@@ -565,6 +570,9 @@ class RDoc::Parser::RipperStateLex
565
570
  tk
566
571
  end
567
572
 
573
+ # :startdoc:
574
+
575
+ # New lexer for +code+.
568
576
  def initialize(code)
569
577
  @buf = []
570
578
  @heredoc_queue = []
@@ -572,6 +580,7 @@ class RDoc::Parser::RipperStateLex
572
580
  @tokens = @inner_lex.parse([])
573
581
  end
574
582
 
583
+ # Returns tokens parsed from +code+.
575
584
  def self.parse(code)
576
585
  lex = self.new(code)
577
586
  tokens = []
@@ -584,6 +593,7 @@ class RDoc::Parser::RipperStateLex
584
593
  tokens
585
594
  end
586
595
 
596
+ # Returns +true+ if lex state will be +END+ after +token+.
587
597
  def self.end?(token)
588
598
  (token[:state] & EXPR_END)
589
599
  end
@@ -8,6 +8,9 @@
8
8
  # by Keiju ISHITSUKA (Nippon Rational Inc.)
9
9
  #
10
10
 
11
+ require 'ripper'
12
+ require_relative 'ripper_state_lex'
13
+
11
14
  ##
12
15
  # Extracts code elements from a source file returning a TopLevel object
13
16
  # containing the constituent file elements.
@@ -138,9 +141,6 @@
138
141
  # Note that by default, the :method: directive will be ignored if there is a
139
142
  # standard rdocable item following it.
140
143
 
141
- require 'ripper'
142
- require_relative 'ripper_state_lex'
143
-
144
144
  class RDoc::Parser::Ruby < RDoc::Parser
145
145
 
146
146
  parse_files_matching(/\.rbw?$/)
@@ -164,15 +164,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
164
164
  def initialize(top_level, file_name, content, options, stats)
165
165
  super
166
166
 
167
- if /\t/ =~ content then
168
- tab_width = @options.tab_width
169
- content = content.split(/\n/).map do |line|
170
- 1 while line.gsub!(/\t+/) {
171
- ' ' * (tab_width*$&.length - $`.length % tab_width)
172
- } && $~
173
- line
174
- end.join("\n")
175
- end
167
+ content = handle_tab_width(content)
176
168
 
177
169
  @size = 0
178
170
  @token_listeners = nil
@@ -188,6 +180,9 @@ class RDoc::Parser::Ruby < RDoc::Parser
188
180
  reset
189
181
  end
190
182
 
183
+ ##
184
+ # Return +true+ if +tk+ is a newline.
185
+
191
186
  def tk_nl?(tk)
192
187
  :on_nl == tk[:kind] or :on_ignored_nl == tk[:kind]
193
188
  end
@@ -399,6 +394,29 @@ class RDoc::Parser::Ruby < RDoc::Parser
399
394
  return [container, name_t, given_name, new_modules]
400
395
  end
401
396
 
397
+ ##
398
+ # Skip opening parentheses and yield the block.
399
+ # Skip closing parentheses too when exists.
400
+
401
+ def skip_parentheses(&block)
402
+ left_tk = peek_tk
403
+
404
+ if :on_lparen == left_tk[:kind]
405
+ get_tk
406
+
407
+ ret = skip_parentheses(&block)
408
+
409
+ right_tk = peek_tk
410
+ if :on_rparen == right_tk[:kind]
411
+ get_tk
412
+ end
413
+
414
+ ret
415
+ else
416
+ yield
417
+ end
418
+ end
419
+
402
420
  ##
403
421
  # Return a superclass, which can be either a constant of an expression
404
422
 
@@ -833,7 +851,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
833
851
  cls = parse_class_regular container, declaration_context, single,
834
852
  name_t, given_name, comment
835
853
  elsif name_t[:kind] == :on_op && name_t[:text] == '<<'
836
- case name = get_class_specification
854
+ case name = skip_parentheses { get_class_specification }
837
855
  when 'self', container.name
838
856
  read_documentation_modifiers cls, RDoc::CLASS_MODIFIERS
839
857
  parse_statements container, SINGLE
@@ -1193,6 +1211,22 @@ class RDoc::Parser::Ruby < RDoc::Parser
1193
1211
  end
1194
1212
  end
1195
1213
 
1214
+ ##
1215
+ # Parses an +included+ with a block feature of ActiveSupport::Concern.
1216
+
1217
+ def parse_included_with_activesupport_concern container, comment # :nodoc:
1218
+ skip_tkspace_without_nl
1219
+ tk = get_tk
1220
+ unless tk[:kind] == :on_lbracket || (tk[:kind] == :on_kw && tk[:text] == 'do')
1221
+ unget_tk tk
1222
+ return nil # should be a block
1223
+ end
1224
+
1225
+ parse_statements container
1226
+
1227
+ container
1228
+ end
1229
+
1196
1230
  ##
1197
1231
  # Parses identifiers that can create new methods or change visibility.
1198
1232
  #
@@ -1893,6 +1927,8 @@ class RDoc::Parser::Ruby < RDoc::Parser
1893
1927
  parse_extend_or_include RDoc::Include, container, comment
1894
1928
  when "extend" then
1895
1929
  parse_extend_or_include RDoc::Extend, container, comment
1930
+ when "included" then
1931
+ parse_included_with_activesupport_concern container, comment
1896
1932
  end
1897
1933
 
1898
1934
  else
@@ -2101,7 +2137,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
2101
2137
  if :on_nl == tk[:kind] or (:on_kw == tk[:kind] && 'def' == tk[:text]) then
2102
2138
  return
2103
2139
  elsif :on_comment == tk[:kind] or :on_embdoc == tk[:kind] then
2104
- return unless tk[:text] =~ /\s*:?([\w-]+):\s*(.*)/
2140
+ return unless tk[:text] =~ /:?\b([\w-]+):\s*(.*)/
2105
2141
 
2106
2142
  directive = $1.downcase
2107
2143
 
@@ -163,5 +163,3 @@ module RDoc::Parser::RubyTools
163
163
  end
164
164
 
165
165
  end
166
-
167
-
@@ -9,4 +9,3 @@
9
9
 
10
10
  module RDoc::Parser::Text
11
11
  end
12
-
data/lib/rdoc/parser.rb CHANGED
@@ -263,9 +263,26 @@ class RDoc::Parser
263
263
  @preprocess.options = @options
264
264
  end
265
265
 
266
- autoload :RubyTools, 'rdoc/parser/ruby_tools'
267
- autoload :Text, 'rdoc/parser/text'
266
+ autoload :RubyTools, "#{__dir__}/parser/ruby_tools"
267
+ autoload :Text, "#{__dir__}/parser/text"
268
268
 
269
+ ##
270
+ # Normalizes tabs in +body+
271
+
272
+ def handle_tab_width(body)
273
+ if /\t/ =~ body
274
+ tab_width = @options.tab_width
275
+ body.split(/\n/).map do |line|
276
+ 1 while line.gsub!(/\t+/) do
277
+ b, e = $~.offset(0)
278
+ ' ' * (tab_width * (e-b) - b % tab_width)
279
+ end
280
+ line
281
+ end.join "\n"
282
+ else
283
+ body
284
+ end
285
+ end
269
286
  end
270
287
 
271
288
  # simple must come first in order to show up last in the parsers list