rdoc 4.3.0 → 5.0.0.beta1

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.

Files changed (248) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +13 -0
  3. data/.travis.yml +23 -0
  4. data/CONTRIBUTING.rdoc +4 -3
  5. data/Gemfile +3 -0
  6. data/History.rdoc +15 -4
  7. data/LEGAL.rdoc +2 -2
  8. data/README.rdoc +1 -0
  9. data/Rakefile +41 -79
  10. data/bin/console +7 -0
  11. data/bin/setup +6 -0
  12. data/{bin → exe}/rdoc +0 -0
  13. data/{bin → exe}/ri +0 -0
  14. data/lib/rdoc.rb +2 -1
  15. data/lib/rdoc/alias.rb +1 -0
  16. data/lib/rdoc/anon_class.rb +1 -0
  17. data/lib/rdoc/any_method.rb +1 -0
  18. data/lib/rdoc/attr.rb +1 -0
  19. data/lib/rdoc/class_module.rb +1 -0
  20. data/lib/rdoc/code_object.rb +1 -0
  21. data/lib/rdoc/code_objects.rb +1 -0
  22. data/lib/rdoc/comment.rb +1 -0
  23. data/lib/rdoc/constant.rb +1 -0
  24. data/lib/rdoc/context.rb +4 -1
  25. data/lib/rdoc/context/section.rb +7 -0
  26. data/lib/rdoc/cross_reference.rb +1 -0
  27. data/lib/rdoc/encoding.rb +14 -0
  28. data/lib/rdoc/erb_partial.rb +1 -0
  29. data/lib/rdoc/erbio.rb +1 -0
  30. data/lib/rdoc/extend.rb +1 -0
  31. data/lib/rdoc/generator.rb +1 -0
  32. data/lib/rdoc/generator/darkfish.rb +1 -0
  33. data/lib/rdoc/generator/json_index.rb +1 -0
  34. data/lib/rdoc/generator/markup.rb +1 -0
  35. data/lib/rdoc/generator/pot.rb +1 -0
  36. data/lib/rdoc/generator/pot/message_extractor.rb +1 -0
  37. data/lib/rdoc/generator/pot/po.rb +1 -0
  38. data/lib/rdoc/generator/pot/po_entry.rb +1 -0
  39. data/lib/rdoc/generator/ri.rb +1 -0
  40. data/lib/rdoc/generator/template/darkfish/_head.rhtml +2 -1
  41. data/lib/rdoc/generator/template/darkfish/css/fonts.css +6 -6
  42. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +7 -7
  43. data/lib/rdoc/generator/template/json_index/js/searcher.js +1 -0
  44. data/lib/rdoc/ghost_method.rb +1 -0
  45. data/lib/rdoc/i18n.rb +1 -0
  46. data/lib/rdoc/i18n/locale.rb +1 -0
  47. data/lib/rdoc/i18n/text.rb +1 -0
  48. data/lib/rdoc/include.rb +1 -0
  49. data/lib/rdoc/known_classes.rb +1 -0
  50. data/lib/rdoc/markdown.kpeg +2 -6
  51. data/lib/rdoc/markdown.rb +2 -6
  52. data/lib/rdoc/markdown/entities.rb +1 -0
  53. data/lib/rdoc/markdown/{literals_1_9.kpeg → literals.kpeg} +0 -0
  54. data/lib/rdoc/markdown/{literals_1_9.rb → literals.rb} +1 -4
  55. data/lib/rdoc/markup.rb +1 -0
  56. data/lib/rdoc/markup/attr_changer.rb +1 -0
  57. data/lib/rdoc/markup/attr_span.rb +1 -0
  58. data/lib/rdoc/markup/attribute_manager.rb +1 -0
  59. data/lib/rdoc/markup/attributes.rb +1 -0
  60. data/lib/rdoc/markup/blank_line.rb +1 -0
  61. data/lib/rdoc/markup/block_quote.rb +1 -0
  62. data/lib/rdoc/markup/document.rb +1 -0
  63. data/lib/rdoc/markup/formatter.rb +1 -0
  64. data/lib/rdoc/markup/formatter_test_case.rb +1 -4
  65. data/lib/rdoc/markup/hard_break.rb +1 -0
  66. data/lib/rdoc/markup/heading.rb +1 -0
  67. data/lib/rdoc/markup/include.rb +1 -0
  68. data/lib/rdoc/markup/indented_paragraph.rb +1 -0
  69. data/lib/rdoc/markup/inline.rb +1 -0
  70. data/lib/rdoc/markup/list.rb +1 -0
  71. data/lib/rdoc/markup/list_item.rb +1 -0
  72. data/lib/rdoc/markup/paragraph.rb +1 -0
  73. data/lib/rdoc/markup/parser.rb +1 -0
  74. data/lib/rdoc/markup/pre_process.rb +1 -0
  75. data/lib/rdoc/markup/raw.rb +1 -0
  76. data/lib/rdoc/markup/rule.rb +1 -0
  77. data/lib/rdoc/markup/special.rb +1 -0
  78. data/lib/rdoc/markup/text_formatter_test_case.rb +1 -0
  79. data/lib/rdoc/markup/to_ansi.rb +1 -0
  80. data/lib/rdoc/markup/to_bs.rb +1 -0
  81. data/lib/rdoc/markup/to_html.rb +1 -0
  82. data/lib/rdoc/markup/to_html_crossref.rb +1 -0
  83. data/lib/rdoc/markup/to_html_snippet.rb +1 -0
  84. data/lib/rdoc/markup/to_joined_paragraph.rb +1 -0
  85. data/lib/rdoc/markup/to_label.rb +1 -0
  86. data/lib/rdoc/markup/to_markdown.rb +1 -0
  87. data/lib/rdoc/markup/to_rdoc.rb +1 -0
  88. data/lib/rdoc/markup/to_table_of_contents.rb +1 -0
  89. data/lib/rdoc/markup/to_test.rb +1 -0
  90. data/lib/rdoc/markup/to_tt_only.rb +1 -0
  91. data/lib/rdoc/markup/verbatim.rb +1 -0
  92. data/lib/rdoc/meta_method.rb +1 -0
  93. data/lib/rdoc/method_attr.rb +1 -0
  94. data/lib/rdoc/mixin.rb +1 -0
  95. data/lib/rdoc/normal_class.rb +1 -0
  96. data/lib/rdoc/normal_module.rb +1 -0
  97. data/lib/rdoc/options.rb +1 -0
  98. data/lib/rdoc/parser.rb +1 -0
  99. data/lib/rdoc/parser/c.rb +76 -33
  100. data/lib/rdoc/parser/changelog.rb +7 -1
  101. data/lib/rdoc/parser/markdown.rb +1 -0
  102. data/lib/rdoc/parser/rd.rb +1 -0
  103. data/lib/rdoc/parser/ruby.rb +1 -0
  104. data/lib/rdoc/parser/ruby_tools.rb +1 -0
  105. data/lib/rdoc/parser/simple.rb +1 -0
  106. data/lib/rdoc/parser/text.rb +1 -0
  107. data/lib/rdoc/rd.rb +1 -0
  108. data/lib/rdoc/rd/inline.rb +1 -0
  109. data/lib/rdoc/rdoc.rb +2 -1
  110. data/lib/rdoc/require.rb +1 -0
  111. data/lib/rdoc/ri.rb +1 -0
  112. data/lib/rdoc/ri/driver.rb +5 -19
  113. data/lib/rdoc/ri/formatter.rb +1 -0
  114. data/lib/rdoc/ri/paths.rb +1 -0
  115. data/lib/rdoc/ri/store.rb +1 -0
  116. data/lib/rdoc/ri/task.rb +72 -0
  117. data/lib/rdoc/ruby_lex.rb +11 -17
  118. data/lib/rdoc/ruby_token.rb +1 -0
  119. data/lib/rdoc/rubygems_hook.rb +1 -0
  120. data/lib/rdoc/servlet.rb +4 -3
  121. data/lib/rdoc/single_class.rb +1 -0
  122. data/lib/rdoc/stats.rb +1 -0
  123. data/lib/rdoc/stats/normal.rb +1 -0
  124. data/lib/rdoc/stats/quiet.rb +1 -0
  125. data/lib/rdoc/stats/verbose.rb +1 -0
  126. data/lib/rdoc/store.rb +3 -9
  127. data/lib/rdoc/task.rb +1 -0
  128. data/lib/rdoc/test_case.rb +1 -10
  129. data/lib/rdoc/text.rb +1 -0
  130. data/lib/rdoc/token_stream.rb +1 -0
  131. data/lib/rdoc/tom_doc.rb +1 -0
  132. data/lib/rdoc/top_level.rb +1 -0
  133. data/rdoc.gemspec +60 -0
  134. metadata +32 -155
  135. data/Manifest.txt +0 -309
  136. data/lib/rdoc/markdown/literals_1_8.kpeg +0 -18
  137. data/lib/rdoc/markdown/literals_1_8.rb +0 -416
  138. data/test/MarkdownTest_1.0.3/Amps and angle encoding.text +0 -21
  139. data/test/MarkdownTest_1.0.3/Auto links.text +0 -13
  140. data/test/MarkdownTest_1.0.3/Backslash escapes.text +0 -120
  141. data/test/MarkdownTest_1.0.3/Blockquotes with code blocks.text +0 -11
  142. data/test/MarkdownTest_1.0.3/Code Blocks.text +0 -14
  143. data/test/MarkdownTest_1.0.3/Code Spans.text +0 -6
  144. data/test/MarkdownTest_1.0.3/Hard-wrapped paragraphs with list-like lines.text +0 -8
  145. data/test/MarkdownTest_1.0.3/Horizontal rules.text +0 -67
  146. data/test/MarkdownTest_1.0.3/Inline HTML (Advanced).text +0 -15
  147. data/test/MarkdownTest_1.0.3/Inline HTML (Simple).text +0 -69
  148. data/test/MarkdownTest_1.0.3/Inline HTML comments.text +0 -13
  149. data/test/MarkdownTest_1.0.3/Links, inline style.text +0 -12
  150. data/test/MarkdownTest_1.0.3/Links, reference style.text +0 -71
  151. data/test/MarkdownTest_1.0.3/Links, shortcut references.text +0 -20
  152. data/test/MarkdownTest_1.0.3/Literal quotes in titles.text +0 -7
  153. data/test/MarkdownTest_1.0.3/Markdown Documentation - Basics.text +0 -306
  154. data/test/MarkdownTest_1.0.3/Markdown Documentation - Syntax.text +0 -888
  155. data/test/MarkdownTest_1.0.3/Nested blockquotes.text +0 -5
  156. data/test/MarkdownTest_1.0.3/Ordered and unordered lists.text +0 -131
  157. data/test/MarkdownTest_1.0.3/Strong and em together.text +0 -7
  158. data/test/MarkdownTest_1.0.3/Tabs.text +0 -21
  159. data/test/MarkdownTest_1.0.3/Tidyness.text +0 -5
  160. data/test/README +0 -1
  161. data/test/binary.dat +0 -0
  162. data/test/hidden.zip.txt +0 -1
  163. data/test/test.ja.largedoc +0 -3
  164. data/test/test.ja.rdoc +0 -10
  165. data/test/test.ja.txt +0 -8
  166. data/test/test.txt +0 -1
  167. data/test/test_rdoc_alias.rb +0 -13
  168. data/test/test_rdoc_any_method.rb +0 -460
  169. data/test/test_rdoc_attr.rb +0 -190
  170. data/test/test_rdoc_class_module.rb +0 -1492
  171. data/test/test_rdoc_code_object.rb +0 -450
  172. data/test/test_rdoc_comment.rb +0 -504
  173. data/test/test_rdoc_constant.rb +0 -181
  174. data/test/test_rdoc_context.rb +0 -901
  175. data/test/test_rdoc_context_section.rb +0 -130
  176. data/test/test_rdoc_cross_reference.rb +0 -192
  177. data/test/test_rdoc_encoding.rb +0 -227
  178. data/test/test_rdoc_extend.rb +0 -94
  179. data/test/test_rdoc_generator_darkfish.rb +0 -229
  180. data/test/test_rdoc_generator_json_index.rb +0 -324
  181. data/test/test_rdoc_generator_markup.rb +0 -59
  182. data/test/test_rdoc_generator_pot.rb +0 -91
  183. data/test/test_rdoc_generator_pot_po.rb +0 -51
  184. data/test/test_rdoc_generator_pot_po_entry.rb +0 -139
  185. data/test/test_rdoc_generator_ri.rb +0 -78
  186. data/test/test_rdoc_i18n_locale.rb +0 -73
  187. data/test/test_rdoc_i18n_text.rb +0 -123
  188. data/test/test_rdoc_include.rb +0 -108
  189. data/test/test_rdoc_markdown.rb +0 -980
  190. data/test/test_rdoc_markdown_test.rb +0 -1884
  191. data/test/test_rdoc_markup.rb +0 -95
  192. data/test/test_rdoc_markup_attribute_manager.rb +0 -364
  193. data/test/test_rdoc_markup_attributes.rb +0 -39
  194. data/test/test_rdoc_markup_document.rb +0 -207
  195. data/test/test_rdoc_markup_formatter.rb +0 -175
  196. data/test/test_rdoc_markup_hard_break.rb +0 -31
  197. data/test/test_rdoc_markup_heading.rb +0 -29
  198. data/test/test_rdoc_markup_include.rb +0 -19
  199. data/test/test_rdoc_markup_indented_paragraph.rb +0 -53
  200. data/test/test_rdoc_markup_paragraph.rb +0 -32
  201. data/test/test_rdoc_markup_parser.rb +0 -1680
  202. data/test/test_rdoc_markup_pre_process.rb +0 -473
  203. data/test/test_rdoc_markup_raw.rb +0 -22
  204. data/test/test_rdoc_markup_to_ansi.rb +0 -369
  205. data/test/test_rdoc_markup_to_bs.rb +0 -366
  206. data/test/test_rdoc_markup_to_html.rb +0 -662
  207. data/test/test_rdoc_markup_to_html_crossref.rb +0 -225
  208. data/test/test_rdoc_markup_to_html_snippet.rb +0 -711
  209. data/test/test_rdoc_markup_to_joined_paragraph.rb +0 -32
  210. data/test/test_rdoc_markup_to_label.rb +0 -112
  211. data/test/test_rdoc_markup_to_markdown.rb +0 -389
  212. data/test/test_rdoc_markup_to_rdoc.rb +0 -377
  213. data/test/test_rdoc_markup_to_table_of_contents.rb +0 -126
  214. data/test/test_rdoc_markup_to_tt_only.rb +0 -246
  215. data/test/test_rdoc_markup_verbatim.rb +0 -29
  216. data/test/test_rdoc_method_attr.rb +0 -193
  217. data/test/test_rdoc_normal_class.rb +0 -47
  218. data/test/test_rdoc_normal_module.rb +0 -42
  219. data/test/test_rdoc_options.rb +0 -766
  220. data/test/test_rdoc_parser.rb +0 -327
  221. data/test/test_rdoc_parser_c.rb +0 -1896
  222. data/test/test_rdoc_parser_changelog.rb +0 -315
  223. data/test/test_rdoc_parser_markdown.rb +0 -61
  224. data/test/test_rdoc_parser_rd.rb +0 -55
  225. data/test/test_rdoc_parser_ruby.rb +0 -3322
  226. data/test/test_rdoc_parser_simple.rb +0 -115
  227. data/test/test_rdoc_rd.rb +0 -30
  228. data/test/test_rdoc_rd_block_parser.rb +0 -535
  229. data/test/test_rdoc_rd_inline.rb +0 -63
  230. data/test/test_rdoc_rd_inline_parser.rb +0 -177
  231. data/test/test_rdoc_rdoc.rb +0 -455
  232. data/test/test_rdoc_require.rb +0 -25
  233. data/test/test_rdoc_ri_driver.rb +0 -1436
  234. data/test/test_rdoc_ri_paths.rb +0 -155
  235. data/test/test_rdoc_ruby_lex.rb +0 -421
  236. data/test/test_rdoc_ruby_token.rb +0 -19
  237. data/test/test_rdoc_rubygems_hook.rb +0 -251
  238. data/test/test_rdoc_servlet.rb +0 -534
  239. data/test/test_rdoc_single_class.rb +0 -20
  240. data/test/test_rdoc_stats.rb +0 -722
  241. data/test/test_rdoc_store.rb +0 -993
  242. data/test/test_rdoc_task.rb +0 -173
  243. data/test/test_rdoc_text.rb +0 -557
  244. data/test/test_rdoc_token_stream.rb +0 -42
  245. data/test/test_rdoc_tom_doc.rb +0 -520
  246. data/test/test_rdoc_top_level.rb +0 -287
  247. data/test/xref_data.rb +0 -76
  248. data/test/xref_test_case.rb +0 -67
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Outputs RDoc markup with hot backspace action! You will probably need a
3
4
  # pager to use this output format.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  require 'cgi'
2
3
 
3
4
  ##
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Subclass of the RDoc::Markup::ToHtml class that supports looking up method
3
4
  # names, classes, etc to create links. RDoc::CrossReference is used to
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Outputs RDoc markup as paragraphs with inline markup only.
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Joins the parts of an RDoc::Markup::Paragraph into a single String.
3
4
  #
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  require 'cgi'
2
3
 
3
4
  ##
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  # :markup: markdown
2
3
 
3
4
  ##
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Outputs RDoc markup as RDoc markup! (mostly)
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Extracts just the RDoc::Markup::Heading elements from a
3
4
  # RDoc::Markup::Document to help build a table of contents
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # This Markup outputter is used for testing purposes.
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Extracts sections of text enclosed in plus, tt or code. Used to discover
3
4
  # undocumented parameters.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # A section of verbatim text
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # MetaMethod represents a meta-programmed method
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Abstract class representing either a method or an attribute.
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # A Mixin adds features from a module into another context. RDoc::Include and
3
4
  # RDoc::Extend are both mixins.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # A normal class, neither singleton nor anonymous
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # A normal module, like NormalClass
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  require 'optparse'
2
3
  require 'pathname'
3
4
 
@@ -1,4 +1,5 @@
1
1
  # -*- coding: us-ascii -*-
2
+ # frozen_string_literal: false
2
3
 
3
4
  ##
4
5
  # A parser is simple a class that subclasses RDoc::Parser and implements #scan
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  require 'tsort'
2
3
 
3
4
  ##
@@ -605,18 +606,46 @@ class RDoc::Parser::C < RDoc::Parser
605
606
  RDoc::Comment.new comment, @top_level
606
607
  end
607
608
 
609
+ ##
610
+ # Generate a Ruby-method table
611
+
612
+ def gen_body_table file_content
613
+ table = {}
614
+ file_content.scan(%r{
615
+ ((?>/\*.*?\*/\s*)?)
616
+ ((?:(?:\w+)\s+)?
617
+ (?:intern\s+)?VALUE\s+(\w+)
618
+ \s*(?:\([^)]*\))(?:[^;]|$))
619
+ | ((?>/\*.*?\*/\s*))^\s*(\#\s*define\s+(\w+)\s+(\w+))
620
+ | ^\s*\#\s*define\s+(\w+)\s+(\w+)
621
+ }xm) do
622
+ case
623
+ when $1
624
+ table[$3] = [:func_def, $1, $2, $~.offset(2)] if !table[$3] || table[$3][0] != :func_def
625
+ when $4
626
+ table[$6] = [:macro_def, $4, $5, $~.offset(5), $7] if !table[$6] || table[$6][0] == :macro_alias
627
+ when $8
628
+ table[$8] ||= [:macro_alias, $9]
629
+ end
630
+ end
631
+ table
632
+ end
633
+
608
634
  ##
609
635
  # Find the C code corresponding to a Ruby method
610
636
 
611
637
  def find_body class_name, meth_name, meth_obj, file_content, quiet = false
612
- case file_content
613
- when %r%((?>/\*.*?\*/\s*)?)
614
- ((?:(?:\w+)\s+)?
615
- (?:intern\s+)?VALUE\s+#{meth_name}
616
- \s*(\([^)]*\))([^;]|$))%xm then
617
- comment = RDoc::Comment.new $1, @top_level
618
- body = $2
619
- offset, = $~.offset(2)
638
+ if file_content
639
+ @body_table ||= {}
640
+ @body_table[file_content] ||= gen_body_table file_content
641
+ type, *args = @body_table[file_content][meth_name]
642
+ end
643
+
644
+ case type
645
+ when :func_def
646
+ comment = RDoc::Comment.new args[0], @top_level
647
+ body = args[1]
648
+ offset, = args[2]
620
649
 
621
650
  comment.remove_private if comment
622
651
 
@@ -645,12 +674,12 @@ class RDoc::Parser::C < RDoc::Parser
645
674
  meth_obj.line = file_content[0, offset].count("\n") + 1
646
675
 
647
676
  body
648
- when %r%((?>/\*.*?\*/\s*))^\s*(\#\s*define\s+#{meth_name}\s+(\w+))%m then
649
- comment = RDoc::Comment.new $1, @top_level
650
- body = $2
651
- offset = $~.offset(2).first
677
+ when :macro_def
678
+ comment = RDoc::Comment.new args[0], @top_level
679
+ body = args[1]
680
+ offset, = args[2]
652
681
 
653
- find_body class_name, $3, meth_obj, file_content, true
682
+ find_body class_name, args[3], meth_obj, file_content, true
654
683
 
655
684
  comment.normalize
656
685
  find_modifiers comment, meth_obj
@@ -664,11 +693,11 @@ class RDoc::Parser::C < RDoc::Parser
664
693
  meth_obj.line = file_content[0, offset].count("\n") + 1
665
694
 
666
695
  body
667
- when %r%^\s*\#\s*define\s+#{meth_name}\s+(\w+)%m then
696
+ when :macro_alias
668
697
  # with no comment we hope the aliased definition has it and use it's
669
698
  # definition
670
699
 
671
- body = find_body(class_name, $1, meth_obj, file_content, true)
700
+ body = find_body(class_name, args[0], meth_obj, file_content, true)
672
701
 
673
702
  return body if body
674
703
 
@@ -763,28 +792,42 @@ class RDoc::Parser::C < RDoc::Parser
763
792
  class_mod.add_comment comment, @top_level
764
793
  end
765
794
 
795
+ ##
796
+ # Generate a const table
797
+
798
+ def gen_const_table file_content
799
+ table = {}
800
+ @content.scan(%r{
801
+ ((?>^\s*/\*.*?\*/\s+))
802
+ rb_define_(\w+)\((?:\s*(?:\w+),)?\s*
803
+ "(\w+)"\s*,
804
+ .*?\)\s*;
805
+ | Document-(?:const|global|variable):\s
806
+ ((?:\w+::)*\w+)
807
+ \s*?\n((?>.*?\*/))
808
+ }mxi) do
809
+ case
810
+ when $1 then table[[$2, $3]] = $1
811
+ when $4 then table[$4] = "/*\n" + $5
812
+ end
813
+ end
814
+ table
815
+ end
816
+
766
817
  ##
767
818
  # Finds a comment matching +type+ and +const_name+ either above the
768
819
  # comment or in the matching Document- section.
769
820
 
770
821
  def find_const_comment(type, const_name, class_name = nil)
771
- comment = if @content =~ %r%((?>^\s*/\*.*?\*/\s+))
772
- rb_define_#{type}\((?:\s*(\w+),)?\s*
773
- "#{const_name}"\s*,
774
- .*?\)\s*;%xmi then
775
- $1
776
- elsif class_name and
777
- @content =~ %r%Document-(?:const|global|variable):\s
778
- #{class_name}::#{const_name}
779
- \s*?\n((?>.*?\*/))%xm then
780
- "/*\n#{$1}"
781
- elsif @content =~ %r%Document-(?:const|global|variable):
782
- \s#{const_name}
783
- \s*?\n((?>.*?\*/))%xm then
784
- "/*\n#{$1}"
785
- else
786
- ''
787
- end
822
+ @const_table ||= {}
823
+ @const_table[@content] ||= gen_const_table @content
824
+ table = @const_table[@content]
825
+
826
+ comment =
827
+ table[[type, const_name]] ||
828
+ (class_name && table[class_name + "::" + const_name]) ||
829
+ table[const_name] ||
830
+ ''
788
831
 
789
832
  RDoc::Comment.new comment, @top_level
790
833
  end
@@ -840,7 +883,7 @@ class RDoc::Parser::C < RDoc::Parser
840
883
  comment = find_attr_comment var_name, attr_name
841
884
  comment.normalize
842
885
 
843
- name = attr_name.gsub(/rb_intern\("([^"]+)"\)/, '\1')
886
+ name = attr_name.gsub(/rb_intern(?:_const)?\("([^"]+)"\)/, '\1')
844
887
 
845
888
  attr = RDoc::Attr.new '', name, rw, comment
846
889
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  require 'time'
2
3
 
3
4
  ##
@@ -101,9 +102,11 @@ class RDoc::Parser::ChangeLog < RDoc::Parser
101
102
  # Groups +entries+ by date.
102
103
 
103
104
  def group_entries entries
105
+ @time_cache ||= {}
104
106
  entries.group_by do |title, _|
105
107
  begin
106
- Time.parse(title).strftime '%Y-%m-%d'
108
+ time = @time_cache[title]
109
+ (time || Time.parse(title)).strftime '%Y-%m-%d'
107
110
  rescue NoMethodError, ArgumentError
108
111
  time, = title.split ' ', 2
109
112
  Time.parse(time).strftime '%Y-%m-%d'
@@ -127,6 +130,7 @@ class RDoc::Parser::ChangeLog < RDoc::Parser
127
130
  # 'README.EXT.ja: ditto']]
128
131
 
129
132
  def parse_entries
133
+ @time_cache ||= {}
130
134
  entries = []
131
135
  entry_name = nil
132
136
  entry_body = []
@@ -142,6 +146,7 @@ class RDoc::Parser::ChangeLog < RDoc::Parser
142
146
 
143
147
  begin
144
148
  time = Time.parse entry_name
149
+ @time_cache[entry_name] = time
145
150
  # HACK Ruby 1.8 does not raise ArgumentError for Time.parse "Other"
146
151
  entry_name = nil unless entry_name =~ /#{time.year}/
147
152
  rescue NoMethodError
@@ -184,6 +189,7 @@ class RDoc::Parser::ChangeLog < RDoc::Parser
184
189
  # Converts the ChangeLog into an RDoc::Markup::Document
185
190
 
186
191
  def scan
192
+ @time_cache = {}
187
193
  entries = parse_entries
188
194
  grouped_entries = group_entries entries
189
195
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Parse a Markdown format file. The parsed RDoc::Markup::Document is attached
3
4
  # as a file comment.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Parse a RD format file. The parsed RDoc::Markup::Document is attached as a
3
4
  # file comment.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # This file contains stuff stolen outright from:
3
4
  #
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Collection of methods for writing parsers against RDoc::RubyLex and
3
4
  # RDoc::RubyToken
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Parse a non-source file. We basically take the whole thing as one big
3
4
  # comment.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Indicates this parser is text and doesn't contain code constructs.
3
4
  #
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # RDoc::RD implements the RD format from the rdtool gem.
3
4
  #
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # Inline keeps track of markup and labels to create proper links.
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  require 'rdoc'
2
3
 
3
4
  require 'find'
@@ -436,7 +437,7 @@ The internal error was:
436
437
 
437
438
  def remove_unparseable files
438
439
  files.reject do |file|
439
- file =~ /\.(?:class|eps|erb|scpt\.txt|ttf|yml)$/i or
440
+ file =~ /\.(?:class|eps|erb|scpt\.txt|svg|ttf|yml)$/i or
440
441
  (file =~ /tags$/i and
441
442
  open(file, 'rb') { |io|
442
443
  io.read(100) =~ /\A(\f\n[^,]+,\d+$|!_TAG_)/
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # A file loaded by \#require
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  require 'rdoc'
2
3
 
3
4
  ##
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  require 'abbrev'
2
3
  require 'optparse'
3
4
 
@@ -906,22 +907,9 @@ The ri pager can be set with the 'RI_PAGER' environment variable or the
906
907
  # will be expanded to Zlib::DataError.
907
908
 
908
909
  def expand_class klass
909
- klass.split('::').inject '' do |expanded, klass_part|
910
- expanded << '::' unless expanded.empty?
911
- short = expanded << klass_part
912
-
913
- subset = classes.keys.select do |klass_name|
914
- klass_name =~ /^#{expanded}[^:]*$/
915
- end
916
-
917
- abbrevs = Abbrev.abbrev subset
918
-
919
- expanded = abbrevs[short]
920
-
921
- raise NotFoundError, short unless expanded
922
-
923
- expanded.dup
924
- end
910
+ ary = classes.keys.grep(Regexp.new("\\A#{klass.gsub(/(?=::|\z)/, '[^:]*')}\\z"))
911
+ raise NotFoundError, klass if ary.length != 1
912
+ ary.first
925
913
  end
926
914
 
927
915
  ##
@@ -1088,10 +1076,8 @@ The ri pager can be set with the 'RI_PAGER' environment variable or the
1088
1076
 
1089
1077
  return if name.nil? or name.empty?
1090
1078
 
1091
- name = expand_name name.strip
1092
-
1093
1079
  begin
1094
- display_name name
1080
+ display_name expand_name(name.strip)
1095
1081
  rescue NotFoundError => e
1096
1082
  puts e.message
1097
1083
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  ##
2
3
  # For RubyGems backwards compatibility
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  require 'rdoc/ri'
2
3
 
3
4
  ##
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: false
1
2
  module RDoc::RI
2
3
 
3
4
  Store = RDoc::Store # :nodoc: