rdoc 4.2.1 → 6.3.1

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 (277) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.rdoc +8 -7
  3. data/Gemfile +12 -0
  4. data/History.rdoc +48 -4
  5. data/LEGAL.rdoc +2 -2
  6. data/README.rdoc +5 -5
  7. data/Rakefile +73 -155
  8. data/bin/console +7 -0
  9. data/bin/setup +6 -0
  10. data/{bin → exe}/rdoc +0 -0
  11. data/{bin → exe}/ri +0 -0
  12. data/lib/rdoc/alias.rb +1 -0
  13. data/lib/rdoc/anon_class.rb +1 -0
  14. data/lib/rdoc/any_method.rb +59 -14
  15. data/lib/rdoc/attr.rb +1 -0
  16. data/lib/rdoc/class_module.rb +5 -2
  17. data/lib/rdoc/code_object.rb +3 -11
  18. data/lib/rdoc/code_objects.rb +1 -0
  19. data/lib/rdoc/comment.rb +32 -11
  20. data/lib/rdoc/constant.rb +3 -2
  21. data/lib/rdoc/context/section.rb +7 -13
  22. data/lib/rdoc/context.rb +78 -23
  23. data/lib/rdoc/cross_reference.rb +33 -14
  24. data/lib/rdoc/encoding.rb +92 -55
  25. data/lib/rdoc/erb_partial.rb +2 -1
  26. data/lib/rdoc/erbio.rb +8 -3
  27. data/lib/rdoc/extend.rb +1 -0
  28. data/lib/rdoc/generator/darkfish.rb +62 -32
  29. data/lib/rdoc/generator/json_index.rb +8 -5
  30. data/lib/rdoc/generator/markup.rb +3 -12
  31. data/lib/rdoc/generator/pot/message_extractor.rb +68 -0
  32. data/lib/rdoc/generator/pot/po.rb +84 -0
  33. data/lib/rdoc/generator/pot/po_entry.rb +141 -0
  34. data/lib/rdoc/generator/pot.rb +4 -3
  35. data/lib/rdoc/generator/ri.rb +1 -0
  36. data/lib/rdoc/generator/template/darkfish/_footer.rhtml +2 -2
  37. data/lib/rdoc/generator/template/darkfish/_head.rhtml +11 -8
  38. data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +2 -2
  39. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +2 -2
  40. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +7 -7
  41. data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +2 -2
  42. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +7 -7
  43. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +6 -6
  44. data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +5 -5
  45. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +5 -5
  46. data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +5 -5
  47. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
  48. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +4 -4
  49. data/lib/rdoc/generator/template/darkfish/class.rhtml +45 -47
  50. data/lib/rdoc/generator/template/darkfish/css/fonts.css +6 -6
  51. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +55 -6
  52. data/lib/rdoc/generator/template/darkfish/index.rhtml +3 -4
  53. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +23 -100
  54. data/lib/rdoc/generator/template/darkfish/js/search.js +32 -31
  55. data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +15 -16
  56. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +16 -16
  57. data/lib/rdoc/generator/template/json_index/js/navigation.js +4 -41
  58. data/lib/rdoc/generator/template/json_index/js/searcher.js +7 -6
  59. data/lib/rdoc/generator.rb +1 -1
  60. data/lib/rdoc/ghost_method.rb +1 -0
  61. data/lib/rdoc/i18n/locale.rb +2 -1
  62. data/lib/rdoc/i18n/text.rb +5 -4
  63. data/lib/rdoc/i18n.rb +3 -2
  64. data/lib/rdoc/include.rb +1 -0
  65. data/lib/rdoc/known_classes.rb +1 -0
  66. data/lib/rdoc/markdown/entities.rb +1 -0
  67. data/lib/rdoc/markdown/{literals_1_9.kpeg → literals.kpeg} +1 -0
  68. data/lib/rdoc/markdown/{literals_1_9.rb → literals.rb} +1 -4
  69. data/lib/rdoc/markdown.kpeg +94 -51
  70. data/lib/rdoc/markdown.rb +1171 -619
  71. data/lib/rdoc/markup/attr_changer.rb +1 -0
  72. data/lib/rdoc/markup/attr_span.rb +9 -2
  73. data/lib/rdoc/markup/attribute_manager.rb +115 -49
  74. data/lib/rdoc/markup/attributes.rb +7 -6
  75. data/lib/rdoc/markup/blank_line.rb +1 -0
  76. data/lib/rdoc/markup/block_quote.rb +1 -0
  77. data/lib/rdoc/markup/document.rb +1 -0
  78. data/lib/rdoc/markup/formatter.rb +25 -23
  79. data/lib/rdoc/markup/hard_break.rb +1 -0
  80. data/lib/rdoc/markup/heading.rb +4 -3
  81. data/lib/rdoc/markup/include.rb +1 -0
  82. data/lib/rdoc/markup/indented_paragraph.rb +1 -0
  83. data/lib/rdoc/markup/list.rb +1 -0
  84. data/lib/rdoc/markup/list_item.rb +1 -0
  85. data/lib/rdoc/markup/paragraph.rb +1 -0
  86. data/lib/rdoc/markup/parser.rb +78 -61
  87. data/lib/rdoc/markup/pre_process.rb +12 -9
  88. data/lib/rdoc/markup/raw.rb +1 -0
  89. data/lib/rdoc/markup/regexp_handling.rb +41 -0
  90. data/lib/rdoc/markup/rule.rb +1 -0
  91. data/lib/rdoc/markup/to_ansi.rb +1 -0
  92. data/lib/rdoc/markup/to_bs.rb +4 -5
  93. data/lib/rdoc/markup/to_html.rb +71 -25
  94. data/lib/rdoc/markup/to_html_crossref.rb +41 -25
  95. data/lib/rdoc/markup/to_html_snippet.rb +10 -9
  96. data/lib/rdoc/markup/to_joined_paragraph.rb +7 -31
  97. data/lib/rdoc/markup/to_label.rb +10 -9
  98. data/lib/rdoc/markup/to_markdown.rb +9 -8
  99. data/lib/rdoc/markup/to_rdoc.rb +35 -6
  100. data/lib/rdoc/markup/to_table_of_contents.rb +2 -0
  101. data/lib/rdoc/markup/to_test.rb +1 -0
  102. data/lib/rdoc/markup/to_tt_only.rb +3 -2
  103. data/lib/rdoc/markup/verbatim.rb +1 -0
  104. data/lib/rdoc/markup.rb +14 -16
  105. data/lib/rdoc/meta_method.rb +1 -0
  106. data/lib/rdoc/method_attr.rb +2 -1
  107. data/lib/rdoc/mixin.rb +1 -0
  108. data/lib/rdoc/normal_class.rb +3 -2
  109. data/lib/rdoc/normal_module.rb +1 -0
  110. data/lib/rdoc/options.rb +92 -58
  111. data/lib/rdoc/parser/c.rb +219 -223
  112. data/lib/rdoc/parser/changelog.rb +155 -18
  113. data/lib/rdoc/parser/markdown.rb +1 -0
  114. data/lib/rdoc/parser/rd.rb +1 -0
  115. data/lib/rdoc/parser/ripper_state_lex.rb +590 -0
  116. data/lib/rdoc/parser/ruby.rb +635 -468
  117. data/lib/rdoc/parser/ruby_tools.rb +33 -33
  118. data/lib/rdoc/parser/simple.rb +3 -3
  119. data/lib/rdoc/parser/text.rb +1 -0
  120. data/lib/rdoc/parser.rb +17 -50
  121. data/lib/rdoc/rd/block_parser.rb +66 -65
  122. data/lib/rdoc/rd/block_parser.ry +3 -3
  123. data/lib/rdoc/rd/inline.rb +5 -4
  124. data/lib/rdoc/rd/inline_parser.rb +52 -51
  125. data/lib/rdoc/rd/inline_parser.ry +1 -1
  126. data/lib/rdoc/rd.rb +1 -0
  127. data/lib/rdoc/rdoc.rb +68 -63
  128. data/lib/rdoc/require.rb +1 -0
  129. data/lib/rdoc/ri/driver.rb +133 -58
  130. data/lib/rdoc/ri/formatter.rb +1 -0
  131. data/lib/rdoc/ri/paths.rb +4 -20
  132. data/lib/rdoc/ri/store.rb +1 -0
  133. data/lib/rdoc/ri/task.rb +71 -0
  134. data/lib/rdoc/ri.rb +1 -0
  135. data/lib/rdoc/rubygems_hook.rb +5 -12
  136. data/lib/rdoc/servlet.rb +24 -14
  137. data/lib/rdoc/single_class.rb +1 -0
  138. data/lib/rdoc/stats/normal.rb +20 -21
  139. data/lib/rdoc/stats/quiet.rb +1 -0
  140. data/lib/rdoc/stats/verbose.rb +1 -0
  141. data/lib/rdoc/stats.rb +1 -0
  142. data/lib/rdoc/store.rb +41 -41
  143. data/lib/rdoc/task.rb +2 -3
  144. data/lib/rdoc/text.rb +19 -38
  145. data/lib/rdoc/token_stream.rb +56 -32
  146. data/lib/rdoc/tom_doc.rb +17 -11
  147. data/lib/rdoc/top_level.rb +9 -2
  148. data/lib/rdoc/version.rb +8 -0
  149. data/lib/rdoc.rb +24 -10
  150. data/man/ri.1 +247 -0
  151. data/rdoc.gemspec +248 -0
  152. metadata +43 -236
  153. data/.autotest +0 -24
  154. data/.document +0 -5
  155. data/Manifest.txt +0 -306
  156. data/lib/gauntlet_rdoc.rb +0 -84
  157. data/lib/rdoc/generator/template/darkfish/js/jquery.js +0 -4
  158. data/lib/rdoc/markdown/literals_1_8.kpeg +0 -18
  159. data/lib/rdoc/markdown/literals_1_8.rb +0 -416
  160. data/lib/rdoc/markup/formatter_test_case.rb +0 -767
  161. data/lib/rdoc/markup/inline.rb +0 -1
  162. data/lib/rdoc/markup/special.rb +0 -40
  163. data/lib/rdoc/markup/text_formatter_test_case.rb +0 -114
  164. data/lib/rdoc/ruby_lex.rb +0 -1377
  165. data/lib/rdoc/ruby_token.rb +0 -460
  166. data/lib/rdoc/test_case.rb +0 -217
  167. data/test/MarkdownTest_1.0.3/Amps and angle encoding.text +0 -21
  168. data/test/MarkdownTest_1.0.3/Auto links.text +0 -13
  169. data/test/MarkdownTest_1.0.3/Backslash escapes.text +0 -120
  170. data/test/MarkdownTest_1.0.3/Blockquotes with code blocks.text +0 -11
  171. data/test/MarkdownTest_1.0.3/Code Blocks.text +0 -14
  172. data/test/MarkdownTest_1.0.3/Code Spans.text +0 -6
  173. data/test/MarkdownTest_1.0.3/Hard-wrapped paragraphs with list-like lines.text +0 -8
  174. data/test/MarkdownTest_1.0.3/Horizontal rules.text +0 -67
  175. data/test/MarkdownTest_1.0.3/Inline HTML (Advanced).text +0 -15
  176. data/test/MarkdownTest_1.0.3/Inline HTML (Simple).text +0 -69
  177. data/test/MarkdownTest_1.0.3/Inline HTML comments.text +0 -13
  178. data/test/MarkdownTest_1.0.3/Links, inline style.text +0 -12
  179. data/test/MarkdownTest_1.0.3/Links, reference style.text +0 -71
  180. data/test/MarkdownTest_1.0.3/Links, shortcut references.text +0 -20
  181. data/test/MarkdownTest_1.0.3/Literal quotes in titles.text +0 -7
  182. data/test/MarkdownTest_1.0.3/Markdown Documentation - Basics.text +0 -306
  183. data/test/MarkdownTest_1.0.3/Markdown Documentation - Syntax.text +0 -888
  184. data/test/MarkdownTest_1.0.3/Nested blockquotes.text +0 -5
  185. data/test/MarkdownTest_1.0.3/Ordered and unordered lists.text +0 -131
  186. data/test/MarkdownTest_1.0.3/Strong and em together.text +0 -7
  187. data/test/MarkdownTest_1.0.3/Tabs.text +0 -21
  188. data/test/MarkdownTest_1.0.3/Tidyness.text +0 -5
  189. data/test/README +0 -1
  190. data/test/binary.dat +0 -0
  191. data/test/hidden.zip.txt +0 -1
  192. data/test/test.ja.largedoc +0 -3
  193. data/test/test.ja.rdoc +0 -10
  194. data/test/test.ja.txt +0 -8
  195. data/test/test.txt +0 -1
  196. data/test/test_rdoc_alias.rb +0 -13
  197. data/test/test_rdoc_any_method.rb +0 -460
  198. data/test/test_rdoc_attr.rb +0 -190
  199. data/test/test_rdoc_class_module.rb +0 -1492
  200. data/test/test_rdoc_code_object.rb +0 -450
  201. data/test/test_rdoc_comment.rb +0 -504
  202. data/test/test_rdoc_constant.rb +0 -181
  203. data/test/test_rdoc_context.rb +0 -901
  204. data/test/test_rdoc_context_section.rb +0 -130
  205. data/test/test_rdoc_cross_reference.rb +0 -192
  206. data/test/test_rdoc_encoding.rb +0 -227
  207. data/test/test_rdoc_extend.rb +0 -94
  208. data/test/test_rdoc_generator_darkfish.rb +0 -229
  209. data/test/test_rdoc_generator_json_index.rb +0 -324
  210. data/test/test_rdoc_generator_markup.rb +0 -59
  211. data/test/test_rdoc_generator_pot.rb +0 -91
  212. data/test/test_rdoc_generator_pot_po.rb +0 -51
  213. data/test/test_rdoc_generator_pot_po_entry.rb +0 -139
  214. data/test/test_rdoc_generator_ri.rb +0 -78
  215. data/test/test_rdoc_i18n_locale.rb +0 -73
  216. data/test/test_rdoc_i18n_text.rb +0 -123
  217. data/test/test_rdoc_include.rb +0 -108
  218. data/test/test_rdoc_markdown.rb +0 -980
  219. data/test/test_rdoc_markdown_test.rb +0 -1884
  220. data/test/test_rdoc_markup.rb +0 -95
  221. data/test/test_rdoc_markup_attribute_manager.rb +0 -364
  222. data/test/test_rdoc_markup_attributes.rb +0 -39
  223. data/test/test_rdoc_markup_document.rb +0 -207
  224. data/test/test_rdoc_markup_formatter.rb +0 -175
  225. data/test/test_rdoc_markup_hard_break.rb +0 -31
  226. data/test/test_rdoc_markup_heading.rb +0 -29
  227. data/test/test_rdoc_markup_include.rb +0 -19
  228. data/test/test_rdoc_markup_indented_paragraph.rb +0 -53
  229. data/test/test_rdoc_markup_paragraph.rb +0 -32
  230. data/test/test_rdoc_markup_parser.rb +0 -1680
  231. data/test/test_rdoc_markup_pre_process.rb +0 -473
  232. data/test/test_rdoc_markup_raw.rb +0 -22
  233. data/test/test_rdoc_markup_to_ansi.rb +0 -369
  234. data/test/test_rdoc_markup_to_bs.rb +0 -366
  235. data/test/test_rdoc_markup_to_html.rb +0 -662
  236. data/test/test_rdoc_markup_to_html_crossref.rb +0 -225
  237. data/test/test_rdoc_markup_to_html_snippet.rb +0 -711
  238. data/test/test_rdoc_markup_to_joined_paragraph.rb +0 -32
  239. data/test/test_rdoc_markup_to_label.rb +0 -112
  240. data/test/test_rdoc_markup_to_markdown.rb +0 -389
  241. data/test/test_rdoc_markup_to_rdoc.rb +0 -377
  242. data/test/test_rdoc_markup_to_table_of_contents.rb +0 -126
  243. data/test/test_rdoc_markup_to_tt_only.rb +0 -246
  244. data/test/test_rdoc_markup_verbatim.rb +0 -29
  245. data/test/test_rdoc_method_attr.rb +0 -193
  246. data/test/test_rdoc_normal_class.rb +0 -47
  247. data/test/test_rdoc_normal_module.rb +0 -42
  248. data/test/test_rdoc_options.rb +0 -766
  249. data/test/test_rdoc_parser.rb +0 -327
  250. data/test/test_rdoc_parser_c.rb +0 -1896
  251. data/test/test_rdoc_parser_changelog.rb +0 -315
  252. data/test/test_rdoc_parser_markdown.rb +0 -61
  253. data/test/test_rdoc_parser_rd.rb +0 -55
  254. data/test/test_rdoc_parser_ruby.rb +0 -3322
  255. data/test/test_rdoc_parser_simple.rb +0 -115
  256. data/test/test_rdoc_rd.rb +0 -30
  257. data/test/test_rdoc_rd_block_parser.rb +0 -535
  258. data/test/test_rdoc_rd_inline.rb +0 -63
  259. data/test/test_rdoc_rd_inline_parser.rb +0 -177
  260. data/test/test_rdoc_rdoc.rb +0 -455
  261. data/test/test_rdoc_require.rb +0 -25
  262. data/test/test_rdoc_ri_driver.rb +0 -1436
  263. data/test/test_rdoc_ri_paths.rb +0 -155
  264. data/test/test_rdoc_ruby_lex.rb +0 -421
  265. data/test/test_rdoc_ruby_token.rb +0 -19
  266. data/test/test_rdoc_rubygems_hook.rb +0 -251
  267. data/test/test_rdoc_servlet.rb +0 -534
  268. data/test/test_rdoc_single_class.rb +0 -20
  269. data/test/test_rdoc_stats.rb +0 -722
  270. data/test/test_rdoc_store.rb +0 -993
  271. data/test/test_rdoc_task.rb +0 -173
  272. data/test/test_rdoc_text.rb +0 -557
  273. data/test/test_rdoc_token_stream.rb +0 -42
  274. data/test/test_rdoc_tom_doc.rb +0 -520
  275. data/test/test_rdoc_top_level.rb +0 -287
  276. data/test/xref_data.rb +0 -76
  277. data/test/xref_test_case.rb +0 -67
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  ##
2
3
  # A TokenStream is a list of tokens, gathered during the parse of some entity
3
4
  # (say a method). Entities populate these streams by being registered with the
@@ -9,43 +10,61 @@ module RDoc::TokenStream
9
10
 
10
11
  ##
11
12
  # Converts +token_stream+ to HTML wrapping various tokens with
12
- # <tt><span></tt> elements. The following tokens types are wrapped in spans
13
- # with the given class names:
14
- #
15
- # TkCONSTANT :: 'ruby-constant'
16
- # TkKW :: 'ruby-keyword'
17
- # TkIVAR :: 'ruby-ivar'
18
- # TkOp :: 'ruby-operator'
19
- # TkId :: 'ruby-identifier'
20
- # TkNode :: 'ruby-node'
21
- # TkCOMMENT :: 'ruby-comment'
22
- # TkREGEXP :: 'ruby-regexp'
23
- # TkSTRING :: 'ruby-string'
24
- # TkVal :: 'ruby-value'
25
- #
26
- # Other token types are not wrapped in spans.
13
+ # <tt><span></tt> elements. Some tokens types are wrapped in spans
14
+ # with the given class names. Other token types are not wrapped in spans.
27
15
 
28
16
  def self.to_html token_stream
17
+ starting_title = false
18
+
29
19
  token_stream.map do |t|
30
20
  next unless t
31
21
 
32
- style = case t
33
- when RDoc::RubyToken::TkCONSTANT then 'ruby-constant'
34
- when RDoc::RubyToken::TkKW then 'ruby-keyword'
35
- when RDoc::RubyToken::TkIVAR then 'ruby-ivar'
36
- when RDoc::RubyToken::TkOp then 'ruby-operator'
37
- when RDoc::RubyToken::TkId then 'ruby-identifier'
38
- when RDoc::RubyToken::TkNode then 'ruby-node'
39
- when RDoc::RubyToken::TkCOMMENT then 'ruby-comment'
40
- when RDoc::RubyToken::TkREGEXP then 'ruby-regexp'
41
- when RDoc::RubyToken::TkSTRING then 'ruby-string'
42
- when RDoc::RubyToken::TkVal then 'ruby-value'
22
+ style = case t[:kind]
23
+ when :on_const then 'ruby-constant'
24
+ when :on_kw then 'ruby-keyword'
25
+ when :on_ivar then 'ruby-ivar'
26
+ when :on_cvar then 'ruby-identifier'
27
+ when :on_gvar then 'ruby-identifier'
28
+ when '=' != t[:text] && :on_op
29
+ then 'ruby-operator'
30
+ when :on_tlambda then 'ruby-operator'
31
+ when :on_ident then 'ruby-identifier'
32
+ when :on_label then 'ruby-value'
33
+ when :on_backref, :on_dstring
34
+ then 'ruby-node'
35
+ when :on_comment then 'ruby-comment'
36
+ when :on_embdoc then 'ruby-comment'
37
+ when :on_regexp then 'ruby-regexp'
38
+ when :on_tstring then 'ruby-string'
39
+ when :on_int, :on_float,
40
+ :on_rational, :on_imaginary,
41
+ :on_heredoc,
42
+ :on_symbol, :on_CHAR then 'ruby-value'
43
+ when :on_heredoc_beg, :on_heredoc_end
44
+ then 'ruby-identifier'
43
45
  end
44
46
 
45
- text = CGI.escapeHTML t.text
47
+ comment_with_nl = false
48
+ if :on_comment == t[:kind] or :on_embdoc == t[:kind] or :on_heredoc_end == t[:kind]
49
+ comment_with_nl = true if "\n" == t[:text][-1]
50
+ text = t[:text].rstrip
51
+ else
52
+ text = t[:text]
53
+ end
54
+
55
+ if :on_ident == t[:kind] && starting_title
56
+ starting_title = false
57
+ style = 'ruby-identifier ruby-title'
58
+ end
59
+
60
+ if :on_kw == t[:kind] and 'def' == t[:text]
61
+ starting_title = true
62
+ end
63
+
64
+ text = CGI.escapeHTML text
46
65
 
47
66
  if style then
48
- "<span class=\"#{style}\">#{text}</span>"
67
+ "<span class=\"#{style}\">#{text}</span>#{"\n" if comment_with_nl}"
49
68
  else
50
69
  text
51
70
  end
@@ -55,11 +74,16 @@ module RDoc::TokenStream
55
74
  ##
56
75
  # Adds +tokens+ to the collected tokens
57
76
 
58
- def add_tokens(*tokens)
59
- tokens.flatten.each { |token| @token_stream << token }
77
+ def add_tokens(tokens)
78
+ @token_stream.concat(tokens)
60
79
  end
61
80
 
62
- alias add_token add_tokens
81
+ ##
82
+ # Adds one +token+ to the collected tokens
83
+
84
+ def add_token(token)
85
+ @token_stream.push(token)
86
+ end
63
87
 
64
88
  ##
65
89
  # Starts collecting tokens
@@ -88,7 +112,7 @@ module RDoc::TokenStream
88
112
  # Returns a string representation of the token stream
89
113
 
90
114
  def tokens_to_s
91
- token_stream.compact.map { |token| token.text }.join ''
115
+ token_stream.compact.map { |token| token[:text] }.join ''
92
116
  end
93
117
 
94
118
  end
data/lib/rdoc/tom_doc.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # :markup: tomdoc
2
3
 
3
4
  # A parser for TomDoc based on TomDoc 1.0.0-rc1 (02adef9b5a)
@@ -179,12 +180,19 @@ class RDoc::TomDoc < RDoc::Markup::Parser
179
180
 
180
181
  case type
181
182
  when :TEXT then
182
- @section = 'Returns' if data =~ /\AReturns/
183
+ @section = 'Returns' if data =~ /\A(Returns|Raises)/
183
184
 
184
185
  paragraph << data
185
186
  when :NEWLINE then
186
187
  if :TEXT == peek_token[0] then
187
- paragraph << ' '
188
+ # Lines beginning with 'Raises' in the Returns section should not be
189
+ # treated as multiline text
190
+ if 'Returns' == @section and
191
+ peek_token[1].start_with?('Raises') then
192
+ break
193
+ else
194
+ paragraph << ' '
195
+ end
188
196
  else
189
197
  break
190
198
  end
@@ -221,7 +229,7 @@ class RDoc::TomDoc < RDoc::Markup::Parser
221
229
  # Returns self.
222
230
 
223
231
  def tokenize text
224
- text.sub!(/\A(Public|Internal|Deprecated):\s+/, '')
232
+ text = text.sub(/\A(Public|Internal|Deprecated):\s+/, '')
225
233
 
226
234
  setup_scanner text
227
235
 
@@ -234,19 +242,18 @@ class RDoc::TomDoc < RDoc::Markup::Parser
234
242
 
235
243
  @tokens << case
236
244
  when @s.scan(/\r?\n/) then
237
- token = [:NEWLINE, @s.matched, *token_pos(pos)]
238
- @line_pos = char_pos @s.pos
239
- @line += 1
245
+ token = [:NEWLINE, @s.matched, *pos]
246
+ @s.newline!
240
247
  token
241
248
  when @s.scan(/(Examples|Signature)$/) then
242
- @tokens << [:HEADER, 3, *token_pos(pos)]
249
+ @tokens << [:HEADER, 3, *pos]
243
250
 
244
- [:TEXT, @s[1], *token_pos(pos)]
251
+ [:TEXT, @s[1], *pos]
245
252
  when @s.scan(/([:\w][\w\[\]]*)[ ]+- /) then
246
- [:NOTE, @s[1], *token_pos(pos)]
253
+ [:NOTE, @s[1], *pos]
247
254
  else
248
255
  @s.scan(/.*/)
249
- [:TEXT, @s.matched.sub(/\r$/, ''), *token_pos(pos)]
256
+ [:TEXT, @s.matched.sub(/\r$/, ''), *pos]
250
257
  end
251
258
  end
252
259
 
@@ -254,4 +261,3 @@ class RDoc::TomDoc < RDoc::Markup::Parser
254
261
  end
255
262
 
256
263
  end
257
-
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  ##
2
3
  # A TopLevel context is a representation of the contents of a single file
3
4
 
@@ -32,7 +33,7 @@ class RDoc::TopLevel < RDoc::Context
32
33
  ##
33
34
  # The parser class that processed this file
34
35
 
35
- attr_accessor :parser
36
+ attr_reader :parser
36
37
 
37
38
  ##
38
39
  # Creates a new TopLevel for the file at +absolute_name+. If documentation
@@ -51,6 +52,12 @@ class RDoc::TopLevel < RDoc::Context
51
52
  @classes_or_modules = []
52
53
  end
53
54
 
55
+ def parser=(val)
56
+ @parser = val
57
+ @store.update_parser_of_file(absolute_name, val) if @store
58
+ @parser
59
+ end
60
+
54
61
  ##
55
62
  # An RDoc::TopLevel is equal to another with the same relative_name
56
63
 
@@ -271,7 +278,7 @@ class RDoc::TopLevel < RDoc::Context
271
278
  # Is this TopLevel from a text file instead of a source code file?
272
279
 
273
280
  def text?
274
- @parser and @parser.ancestors.include? RDoc::Parser::Text
281
+ @parser and @parser.include? RDoc::Parser::Text
275
282
  end
276
283
 
277
284
  def to_s # :nodoc:
@@ -0,0 +1,8 @@
1
+ module RDoc
2
+
3
+ ##
4
+ # RDoc version you are using
5
+
6
+ VERSION = '6.3.1'
7
+
8
+ end
data/lib/rdoc.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  $DEBUG_RDOC = nil
2
3
 
3
4
  # :main: README.rdoc
@@ -61,10 +62,7 @@ module RDoc
61
62
 
62
63
  class Error < RuntimeError; end
63
64
 
64
- ##
65
- # RDoc version you are using
66
-
67
- VERSION = '4.2.1'
65
+ require 'rdoc/version'
68
66
 
69
67
  ##
70
68
  # Method visibilities
@@ -122,9 +120,28 @@ module RDoc
122
120
  end
123
121
  end
124
122
 
125
- autoload :RDoc, 'rdoc/rdoc'
123
+ def self.home
124
+ rdoc_dir = begin
125
+ File.expand_path('~/.rdoc')
126
+ rescue ArgumentError
127
+ end
128
+
129
+ if File.directory?(rdoc_dir)
130
+ rdoc_dir
131
+ else
132
+ begin
133
+ # XDG
134
+ xdg_data_home = ENV["XDG_DATA_HOME"] || File.join(File.expand_path("~"), '.local', 'share')
135
+ unless File.exist?(xdg_data_home)
136
+ FileUtils.mkdir_p xdg_data_home
137
+ end
138
+ File.join xdg_data_home, "rdoc"
139
+ rescue Errno::EACCES
140
+ end
141
+ end
142
+ end
126
143
 
127
- autoload :TestCase, 'rdoc/test_case'
144
+ autoload :RDoc, 'rdoc/rdoc'
128
145
 
129
146
  autoload :CrossReference, 'rdoc/cross_reference'
130
147
  autoload :ERBIO, 'rdoc/erbio'
@@ -147,13 +164,11 @@ module RDoc
147
164
 
148
165
  autoload :KNOWN_CLASSES, 'rdoc/known_classes'
149
166
 
150
- autoload :RubyLex, 'rdoc/ruby_lex'
151
- autoload :RubyToken, 'rdoc/ruby_token'
152
167
  autoload :TokenStream, 'rdoc/token_stream'
153
168
 
154
169
  autoload :Comment, 'rdoc/comment'
155
170
 
156
- autoload :I18n, 'rdoc/i18n'
171
+ require 'rdoc/i18n'
157
172
 
158
173
  # code objects
159
174
  #
@@ -184,4 +199,3 @@ module RDoc
184
199
  autoload :Require, 'rdoc/require'
185
200
 
186
201
  end
187
-
data/man/ri.1 ADDED
@@ -0,0 +1,247 @@
1
+ .\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>.
2
+ .Dd April 20, 2017
3
+ .Dt RI \&1 "Ruby Programmer's Reference Guide"
4
+ .Os UNIX
5
+ .Sh NAME
6
+ .Nm ri
7
+ .Nd Ruby API reference front end
8
+ .Sh SYNOPSIS
9
+ .Nm
10
+ .Op Fl ahilTv
11
+ .Op Fl d Ar DIRNAME
12
+ .Op Fl f Ar FORMAT
13
+ .Op Fl w Ar WIDTH
14
+ .Op Fl - Ns Oo Cm no- Oc Ns Cm pager
15
+ .Op Fl -server Ns Oo = Ns Ar PORT Oc
16
+ .Op Fl - Ns Oo Cm no- Oc Ns Cm list-doc-dirs
17
+ .Op Fl -no-standard-docs
18
+ .Op Fl - Ns Oo Cm no- Oc Ns Bro Cm system Ns | Ns Cm site Ns | Ns Cm gems Ns | Ns Cm home Brc
19
+ .Op Fl - Ns Oo Cm no- Oc Ns Cm profile
20
+ .Op Fl -dump Ns = Ns Ar CACHE
21
+ .Op Ar name ...
22
+ .Sh DESCRIPTION
23
+ .Nm
24
+ is a command-line front end for the Ruby API reference.
25
+ You can search and read the API reference for classes and methods with
26
+ .Nm .
27
+ .Pp
28
+ .Nm
29
+ is a part of Ruby.
30
+ .Pp
31
+ .Ar name
32
+ can be:
33
+ .Bl -diag -offset indent
34
+ .It Class | Module | Module::Class
35
+ .Pp
36
+ .It Class::method | Class#method | Class.method | method
37
+ .Pp
38
+ .It gem_name: | gem_name:README | gem_name:History
39
+ .El
40
+ .Pp
41
+ All class names may be abbreviated to their minimum unambiguous form.
42
+ If a name is ambiguous, all valid options will be listed.
43
+ .Pp
44
+ A
45
+ .Ql \&.
46
+ matches either class or instance methods, while #method
47
+ matches only instance and ::method matches only class methods.
48
+ .Pp
49
+ README and other files may be displayed by prefixing them with the gem name
50
+ they're contained in. If the gem name is followed by a
51
+ .Ql \&:
52
+ all files in the gem will be shown.
53
+ The file name extension may be omitted where it is unambiguous.
54
+ .Pp
55
+ For example:
56
+ .Bd -literal -offset indent
57
+ ri Fil
58
+ ri File
59
+ ri File.new
60
+ ri zip
61
+ ri rdoc:README
62
+ .Ed
63
+ .Pp
64
+ Note that shell quoting or escaping may be required for method names
65
+ containing punctuation:
66
+ .Bd -literal -offset indent
67
+ ri 'Array.[]'
68
+ ri compact\e!
69
+ .Ed
70
+ .Pp
71
+ To see the default directories
72
+ .Nm
73
+ will search, run:
74
+ .Bd -literal -offset indent
75
+ ri --list-doc-dirs
76
+ .Ed
77
+ .Pp
78
+ Specifying the
79
+ .Fl -system , Fl -site , Fl -home , Fl -gems ,
80
+ or
81
+ .Fl -doc-dir
82
+ options will limit
83
+ .Nm
84
+ to searching only the specified directories.
85
+ .Pp
86
+ .Nm
87
+ options may be set in the
88
+ .Ev RI
89
+ environment variable.
90
+ .Pp
91
+ The
92
+ .Nm
93
+ pager can be set with the
94
+ .Ev RI_PAGER
95
+ environment variable or the
96
+ .Ev PAGER
97
+ environment variable.
98
+ .Pp
99
+ .Sh OPTIONS
100
+ .Bl -tag -width "1234567890123" -compact
101
+ .Pp
102
+ .It Fl i
103
+ .It Fl - Ns Oo Cm no- Oc Ns Cm interactive
104
+ In interactive mode you can repeatedly
105
+ look up methods with autocomplete.
106
+ .Pp
107
+ .It Fl a
108
+ .It Fl - Ns Oo Cm no- Oc Ns Cm all
109
+ Show all documentation for a class or module.
110
+ .Pp
111
+ .It Fl l
112
+ .It Fl - Ns Oo Cm no- Oc Ns Cm list
113
+ List classes
114
+ .Nm
115
+ knows about.
116
+ .Pp
117
+ .It Fl - Ns Oo Cm no- Oc Ns Cm pager
118
+ Send output to a pager,
119
+ rather than directly to stdout.
120
+ .Pp
121
+ .It Fl T
122
+ Synonym for
123
+ .Fl -no-pager .
124
+ .Pp
125
+ .It Fl w Ar WIDTH
126
+ .It Fl -width Ns = Ns Ar WIDTH
127
+ Set the width of the output.
128
+ .Pp
129
+ .It Fl -server Ns Oo = Ns Ar PORT Oc
130
+ Run RDoc server on the given port.
131
+ The default port is\~8214.
132
+ .Pp
133
+ .It Fl f Ar FORMAT
134
+ .It Fl -format Ns = Ns Ar FORMAT
135
+ Use the selected formatter.
136
+ The default formatter is
137
+ .Li bs
138
+ for paged output and
139
+ .Li ansi
140
+ otherwise.
141
+ Valid formatters are:
142
+ .Li ansi , Li bs , Li markdown , Li rdoc .
143
+ .Pp
144
+ .It Fl h
145
+ .It Fl -help
146
+ Show help and exit.
147
+ .Pp
148
+ .It Fl v
149
+ .It Fl -version
150
+ Output version information and exit.
151
+ .El
152
+ .Pp
153
+ Data source options:
154
+ .Bl -tag -width "1234567890123" -compact
155
+ .Pp
156
+ .It Fl - Ns Oo Cm no- Oc Ns Cm list-doc-dirs
157
+ List the directories from which
158
+ .Nm
159
+ will source documentation on stdout and exit.
160
+ .Pp
161
+ .It Fl d Ar DIRNAME
162
+ .It Fl -doc-dir Ns = Ns Ar DIRNAME
163
+ List of directories from which to source
164
+ documentation in addition to the standard
165
+ directories. May be repeated.
166
+ .Pp
167
+ .It Fl -no-standard-docs
168
+ Do not include documentation from the Ruby standard library,
169
+ .Pa site_lib ,
170
+ installed gems, or
171
+ .Pa ~/.rdoc .
172
+ Use with
173
+ .Fl -doc-dir .
174
+ .Pp
175
+ .It Fl - Ns Oo Cm no- Oc Ns Cm system
176
+ Include documentation from Ruby's standard library. Defaults to true.
177
+ .Pp
178
+ .It Fl - Ns Oo Cm no- Oc Ns Cm site
179
+ Include documentation from libraries installed in
180
+ .Pa site_lib .
181
+ Defaults to true.
182
+ .Pp
183
+ .It Fl - Ns Oo Cm no- Oc Ns Cm gems
184
+ Include documentation from RubyGems. Defaults to true.
185
+ .Pp
186
+ .It Fl - Ns Oo Cm no- Oc Ns Cm home
187
+ Include documentation stored in
188
+ .Pa ~/.rdoc .
189
+ Defaults to true.
190
+ .El
191
+ .Pp
192
+ Debug options:
193
+ .Bl -tag -width "1234567890123" -compact
194
+ .Pp
195
+ .It Fl - Ns Oo Cm no- Oc Ns Cm profile
196
+ Run with the Ruby profiler.
197
+ .Pp
198
+ .It Fl -dump Ns = Ns Ar CACHE
199
+ Dump data from an ri cache or data file.
200
+ .El
201
+ .Pp
202
+ .Sh ENVIRONMENT
203
+ .Bl -tag -width "USERPROFILE" -compact
204
+ .Pp
205
+ .It Ev RI
206
+ Options to prepend to those specified on the command-line.
207
+ .Pp
208
+ .It Ev RI_PAGER
209
+ .It Ev PAGER
210
+ Pager program to use for displaying.
211
+ .Pp
212
+ .It Ev HOME
213
+ .It Ev USERPROFILE
214
+ .It Ev HOMEPATH
215
+ Path to the user's home directory.
216
+ .El
217
+ .Pp
218
+ .Sh FILES
219
+ .Bl -tag -width "USERPROFILE" -compact
220
+ .Pp
221
+ .It Pa ~/.rdoc
222
+ Path for ri data in the user's home directory.
223
+ .Pp
224
+ .El
225
+ .Pp
226
+ .Sh SEE ALSO
227
+ .Xr ruby 1 ,
228
+ .Xr rdoc 1 ,
229
+ .Xr gem 1
230
+ .Pp
231
+ .Sh REPORTING BUGS
232
+ .Bl -bullet
233
+ .It
234
+ Security vulnerabilities should be reported via an email to
235
+ .Mt security@ruby-lang.org .
236
+ Reported problems will be published after being fixed.
237
+ .Pp
238
+ .It
239
+ Other bugs and feature requests can be reported via the
240
+ Ruby Issue Tracking System
241
+ .Pq Lk https://bugs.ruby-lang.org/ .
242
+ Do not report security vulnerabilities
243
+ via this system because it publishes the vulnerabilities immediately.
244
+ .El
245
+ .Sh AUTHORS
246
+ Written by
247
+ .An Dave Thomas Aq dave@pragmaticprogrammer.com .