rdoc 6.17.0 → 8.1.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 (169) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +193 -0
  3. data/LEGAL.rdoc +6 -0
  4. data/LICENSE.rdoc +4 -0
  5. data/README.md +132 -8
  6. data/RI.md +75 -75
  7. data/doc/markup_reference/markdown.md +659 -0
  8. data/doc/markup_reference/rdoc.rdoc +1169 -0
  9. data/exe/rdoc +2 -2
  10. data/lib/rdoc/code_object/alias.rb +70 -74
  11. data/lib/rdoc/code_object/any_method.rb +308 -293
  12. data/lib/rdoc/code_object/attr.rb +150 -142
  13. data/lib/rdoc/code_object/class_module.rb +802 -715
  14. data/lib/rdoc/code_object/constant.rb +181 -144
  15. data/lib/rdoc/code_object/context/section.rb +140 -130
  16. data/lib/rdoc/code_object/context.rb +925 -941
  17. data/lib/rdoc/code_object/extend.rb +7 -5
  18. data/lib/rdoc/code_object/include.rb +7 -5
  19. data/lib/rdoc/code_object/method_attr.rb +328 -315
  20. data/lib/rdoc/code_object/mixin.rb +97 -92
  21. data/lib/rdoc/code_object/normal_class.rb +77 -78
  22. data/lib/rdoc/code_object/normal_module.rb +61 -59
  23. data/lib/rdoc/code_object/require.rb +23 -39
  24. data/lib/rdoc/code_object/single_class.rb +21 -19
  25. data/lib/rdoc/code_object/top_level.rb +215 -202
  26. data/lib/rdoc/code_object.rb +305 -305
  27. data/lib/rdoc/comment.rb +274 -337
  28. data/lib/rdoc/cross_reference.rb +195 -206
  29. data/lib/rdoc/encoding.rb +105 -103
  30. data/lib/rdoc/erb_partial.rb +13 -11
  31. data/lib/rdoc/erbio.rb +29 -27
  32. data/lib/rdoc/generator/aliki.rb +196 -30
  33. data/lib/rdoc/generator/darkfish.rb +647 -629
  34. data/lib/rdoc/generator/json_index.rb +233 -229
  35. data/lib/rdoc/generator/markup.rb +165 -122
  36. data/lib/rdoc/generator/pot/message_extractor.rb +57 -51
  37. data/lib/rdoc/generator/pot/po.rb +52 -51
  38. data/lib/rdoc/generator/pot/po_entry.rb +138 -132
  39. data/lib/rdoc/generator/pot.rb +85 -81
  40. data/lib/rdoc/generator/ri.rb +23 -19
  41. data/lib/rdoc/generator/template/aliki/DESIGN.md +538 -0
  42. data/lib/rdoc/generator/template/aliki/_aside_toc.rhtml +1 -1
  43. data/lib/rdoc/generator/template/aliki/_footer.rhtml +2 -2
  44. data/lib/rdoc/generator/template/aliki/_head.rhtml +15 -10
  45. data/lib/rdoc/generator/template/aliki/_header.rhtml +29 -44
  46. data/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +8 -6
  47. data/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +8 -6
  48. data/lib/rdoc/generator/template/aliki/_sidebar_installed.rhtml +1 -1
  49. data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +3 -3
  50. data/lib/rdoc/generator/template/aliki/_sidebar_search.rhtml +3 -3
  51. data/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +1 -1
  52. data/lib/rdoc/generator/template/aliki/_sidebar_toggle.rhtml +1 -1
  53. data/lib/rdoc/generator/template/aliki/class.rhtml +71 -61
  54. data/lib/rdoc/generator/template/aliki/css/rdoc.css +796 -323
  55. data/lib/rdoc/generator/template/aliki/index.rhtml +1 -1
  56. data/lib/rdoc/generator/template/aliki/js/aliki.js +119 -113
  57. data/lib/rdoc/generator/template/aliki/js/bash_highlighter.js +167 -0
  58. data/lib/rdoc/generator/template/aliki/js/c_highlighter.js +1 -1
  59. data/lib/rdoc/generator/template/aliki/js/{search.js → search_controller.js} +16 -7
  60. data/lib/rdoc/generator/template/aliki/js/search_navigation.js +105 -0
  61. data/lib/rdoc/generator/template/aliki/js/search_ranker.js +239 -0
  62. data/lib/rdoc/generator/template/aliki/page.rhtml +1 -1
  63. data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +1 -1
  64. data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +2 -2
  65. data/lib/rdoc/generator/template/darkfish/_footer.rhtml +1 -1
  66. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +8 -6
  67. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +8 -6
  68. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +1 -1
  69. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +2 -2
  70. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +1 -1
  71. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +5 -5
  72. data/lib/rdoc/generator/template/darkfish/class.rhtml +29 -32
  73. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +19 -1
  74. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +3 -3
  75. data/lib/rdoc/generator.rb +48 -46
  76. data/lib/rdoc/i18n/locale.rb +99 -95
  77. data/lib/rdoc/i18n/text.rb +109 -105
  78. data/lib/rdoc/i18n.rb +7 -5
  79. data/lib/rdoc/markdown/byte_runtime.rb +80 -0
  80. data/lib/rdoc/markdown.kpeg +52 -33
  81. data/lib/rdoc/markdown.rb +365 -177
  82. data/lib/rdoc/markup/blank_line.rb +25 -23
  83. data/lib/rdoc/markup/block_quote.rb +12 -8
  84. data/lib/rdoc/markup/document.rb +127 -123
  85. data/lib/rdoc/markup/element.rb +21 -0
  86. data/lib/rdoc/markup/formatter.rb +220 -203
  87. data/lib/rdoc/markup/hard_break.rb +30 -27
  88. data/lib/rdoc/markup/heading.rb +163 -77
  89. data/lib/rdoc/markup/include.rb +33 -29
  90. data/lib/rdoc/markup/indented_paragraph.rb +37 -33
  91. data/lib/rdoc/markup/inline_parser.rb +316 -0
  92. data/lib/rdoc/markup/list.rb +80 -88
  93. data/lib/rdoc/markup/list_item.rb +73 -85
  94. data/lib/rdoc/markup/paragraph.rb +23 -19
  95. data/lib/rdoc/markup/parser.rb +501 -497
  96. data/lib/rdoc/markup/pre_process.rb +284 -305
  97. data/lib/rdoc/markup/raw.rb +52 -55
  98. data/lib/rdoc/markup/rule.rb +16 -12
  99. data/lib/rdoc/markup/table.rb +48 -40
  100. data/lib/rdoc/markup/to_ansi.rb +143 -92
  101. data/lib/rdoc/markup/to_bs.rb +86 -102
  102. data/lib/rdoc/markup/to_html.rb +608 -506
  103. data/lib/rdoc/markup/to_html_crossref.rb +219 -210
  104. data/lib/rdoc/markup/to_html_snippet.rb +210 -205
  105. data/lib/rdoc/markup/to_joined_paragraph.rb +40 -41
  106. data/lib/rdoc/markup/to_label.rb +64 -51
  107. data/lib/rdoc/markup/to_markdown.rb +212 -184
  108. data/lib/rdoc/markup/to_rdoc.rb +341 -277
  109. data/lib/rdoc/markup/to_table_of_contents.rb +66 -62
  110. data/lib/rdoc/markup/to_test.rb +62 -50
  111. data/lib/rdoc/markup/to_tt_only.rb +83 -92
  112. data/lib/rdoc/markup/verbatim.rb +62 -58
  113. data/lib/rdoc/markup.rb +196 -215
  114. data/lib/rdoc/options.rb +1063 -1076
  115. data/lib/rdoc/parser/c.rb +1039 -1036
  116. data/lib/rdoc/parser/changelog.rb +320 -287
  117. data/lib/rdoc/parser/markdown.rb +17 -13
  118. data/lib/rdoc/parser/rbs.rb +279 -0
  119. data/lib/rdoc/parser/rd.rb +17 -13
  120. data/lib/rdoc/parser/ruby.rb +1231 -2222
  121. data/lib/rdoc/parser/ruby_colorizer.rb +303 -0
  122. data/lib/rdoc/parser/simple.rb +31 -27
  123. data/lib/rdoc/parser/text.rb +12 -8
  124. data/lib/rdoc/parser.rb +230 -221
  125. data/lib/rdoc/rbs_helper.rb +186 -0
  126. data/lib/rdoc/rd/inline.rb +57 -53
  127. data/lib/rdoc/rd.rb +90 -88
  128. data/lib/rdoc/rdoc.rb +547 -366
  129. data/lib/rdoc/ri/driver.rb +1141 -1130
  130. data/lib/rdoc/ri/formatter.rb +7 -3
  131. data/lib/rdoc/ri/paths.rb +140 -136
  132. data/lib/rdoc/ri/servlet.rb +456 -0
  133. data/lib/rdoc/ri/store.rb +4 -2
  134. data/lib/rdoc/ri/task.rb +55 -51
  135. data/lib/rdoc/ri.rb +14 -11
  136. data/lib/rdoc/rubygems_hook.rb +194 -192
  137. data/lib/rdoc/server.rb +462 -0
  138. data/lib/rdoc/stats/normal.rb +46 -42
  139. data/lib/rdoc/stats/quiet.rb +39 -35
  140. data/lib/rdoc/stats/verbose.rb +35 -31
  141. data/lib/rdoc/stats.rb +363 -338
  142. data/lib/rdoc/store.rb +919 -725
  143. data/lib/rdoc/task.rb +260 -255
  144. data/lib/rdoc/text.rb +164 -240
  145. data/lib/rdoc/token_stream.rb +88 -106
  146. data/lib/rdoc/tom_doc.rb +203 -201
  147. data/lib/rdoc/version.rb +1 -1
  148. data/lib/rdoc.rb +35 -7
  149. data/lib/rubygems_plugin.rb +2 -11
  150. data/rdoc-logo.svg +43 -0
  151. data/rdoc.gemspec +9 -7
  152. metadata +46 -32
  153. data/CONTRIBUTING.rdoc +0 -219
  154. data/ExampleMarkdown.md +0 -39
  155. data/ExampleRDoc.rdoc +0 -210
  156. data/lib/rdoc/code_object/anon_class.rb +0 -10
  157. data/lib/rdoc/code_object/ghost_method.rb +0 -6
  158. data/lib/rdoc/code_object/meta_method.rb +0 -6
  159. data/lib/rdoc/markdown/literals.kpeg +0 -21
  160. data/lib/rdoc/markdown/literals.rb +0 -454
  161. data/lib/rdoc/markup/attr_changer.rb +0 -22
  162. data/lib/rdoc/markup/attr_span.rb +0 -35
  163. data/lib/rdoc/markup/attribute_manager.rb +0 -405
  164. data/lib/rdoc/markup/attributes.rb +0 -70
  165. data/lib/rdoc/markup/regexp_handling.rb +0 -40
  166. data/lib/rdoc/parser/prism_ruby.rb +0 -1100
  167. data/lib/rdoc/parser/ripper_state_lex.rb +0 -302
  168. data/lib/rdoc/parser/ruby_tools.rb +0 -163
  169. data/lib/rdoc/servlet.rb +0 -452
@@ -1,88 +1,92 @@
1
1
  # frozen_string_literal: true
2
- ##
3
- # Extracts just the RDoc::Markup::Heading elements from a
4
- # RDoc::Markup::Document to help build a table of contents
2
+ module RDoc
3
+ class Markup
4
+ ##
5
+ # Extracts just the RDoc::Markup::Heading elements from a
6
+ # RDoc::Markup::Document to help build a table of contents
5
7
 
6
- class RDoc::Markup::ToTableOfContents < RDoc::Markup::Formatter
8
+ class ToTableOfContents < Markup::Formatter
7
9
 
8
- @to_toc = nil
10
+ @to_toc = nil
9
11
 
10
- ##
11
- # Singleton for table-of-contents generation
12
+ ##
13
+ # Singleton for table-of-contents generation
12
14
 
13
- def self.to_toc
14
- @to_toc ||= new
15
- end
15
+ def self.to_toc
16
+ @to_toc ||= new
17
+ end
16
18
 
17
- ##
18
- # Output accumulator
19
+ ##
20
+ # Output accumulator
19
21
 
20
- attr_reader :res
22
+ attr_reader :res
21
23
 
22
- ##
23
- # Omits headings with a level less than the given level.
24
+ ##
25
+ # Omits headings with a level less than the given level.
24
26
 
25
- attr_accessor :omit_headings_below
27
+ attr_accessor :omit_headings_below
26
28
 
27
- def initialize # :nodoc:
28
- super nil
29
+ def initialize # :nodoc:
30
+ super
29
31
 
30
- @omit_headings_below = nil
31
- end
32
+ @omit_headings_below = nil
33
+ end
32
34
 
33
- ##
34
- # Adds +document+ to the output, using its heading cutoff if present
35
+ ##
36
+ # Adds +document+ to the output, using its heading cutoff if present
35
37
 
36
- def accept_document(document)
37
- @omit_headings_below = document.omit_headings_below
38
+ def accept_document(document)
39
+ @omit_headings_below = document.omit_headings_below
38
40
 
39
- super
40
- end
41
+ super
42
+ end
41
43
 
42
- ##
43
- # Adds +heading+ to the table of contents
44
+ ##
45
+ # Adds +heading+ to the table of contents
44
46
 
45
- def accept_heading(heading)
46
- @res << heading unless suppressed? heading
47
- end
47
+ def accept_heading(heading)
48
+ @res << heading unless suppressed? heading
49
+ end
48
50
 
49
- ##
50
- # Returns the table of contents
51
+ ##
52
+ # Returns the table of contents
51
53
 
52
- def end_accepting
53
- @res
54
- end
54
+ def end_accepting
55
+ @res
56
+ end
55
57
 
56
- ##
57
- # Prepares the visitor for text generation
58
+ ##
59
+ # Prepares the visitor for text generation
58
60
 
59
- def start_accepting
60
- @omit_headings_below = nil
61
- @res = []
62
- end
61
+ def start_accepting
62
+ @omit_headings_below = nil
63
+ @res = []
64
+ end
63
65
 
64
- ##
65
- # Returns true if +heading+ is below the display threshold
66
+ ##
67
+ # Returns true if +heading+ is below the display threshold
66
68
 
67
- def suppressed?(heading)
68
- return false unless @omit_headings_below
69
+ def suppressed?(heading)
70
+ return false unless @omit_headings_below
69
71
 
70
- heading.level > @omit_headings_below
71
- end
72
+ heading.level > @omit_headings_below
73
+ end
72
74
 
73
- # :stopdoc:
74
- alias accept_block_quote ignore
75
- alias accept_raw ignore
76
- alias accept_rule ignore
77
- alias accept_blank_line ignore
78
- alias accept_paragraph ignore
79
- alias accept_verbatim ignore
80
- alias accept_list_end ignore
81
- alias accept_list_item_start ignore
82
- alias accept_list_item_end ignore
83
- alias accept_list_end_bullet ignore
84
- alias accept_list_start ignore
85
- alias accept_table ignore
86
- # :startdoc:
75
+ # :stopdoc:
76
+ alias accept_block_quote ignore
77
+ alias accept_raw ignore
78
+ alias accept_rule ignore
79
+ alias accept_blank_line ignore
80
+ alias accept_paragraph ignore
81
+ alias accept_verbatim ignore
82
+ alias accept_list_end ignore
83
+ alias accept_list_item_start ignore
84
+ alias accept_list_item_end ignore
85
+ alias accept_list_end_bullet ignore
86
+ alias accept_list_start ignore
87
+ alias accept_table ignore
88
+ # :startdoc:
87
89
 
90
+ end
91
+ end
88
92
  end
@@ -1,69 +1,81 @@
1
1
  # frozen_string_literal: true
2
- ##
3
- # This Markup outputter is used for testing purposes.
2
+ module RDoc
3
+ class Markup
4
+ ##
5
+ # This Markup outputter is used for testing purposes.
4
6
 
5
- class RDoc::Markup::ToTest < RDoc::Markup::Formatter
7
+ class ToTest < Markup::Formatter
6
8
 
7
- # :stopdoc:
9
+ # :stopdoc:
8
10
 
9
- ##
10
- # :section: Visitor
11
+ ##
12
+ # :section: Visitor
11
13
 
12
- def start_accepting
13
- @res = []
14
- @list = []
15
- end
14
+ def start_accepting
15
+ @res = []
16
+ @list = []
17
+ end
16
18
 
17
- def end_accepting
18
- @res
19
- end
19
+ def end_accepting
20
+ @res
21
+ end
20
22
 
21
- def accept_paragraph(paragraph)
22
- @res << convert_flow(@am.flow(paragraph.text))
23
- end
23
+ def handle_PLAIN_TEXT(text)
24
+ @res << text
25
+ end
24
26
 
25
- def accept_raw(raw)
26
- @res << raw.parts.join
27
- end
27
+ def handle_REGEXP_HANDLING_TEXT(text)
28
+ @res << text
29
+ end
28
30
 
29
- def accept_verbatim(verbatim)
30
- @res << verbatim.text.gsub(/^(\S)/, ' \1')
31
- end
31
+ def accept_paragraph(paragraph)
32
+ handle_inline(paragraph.text)
33
+ end
32
34
 
33
- def accept_list_start(list)
34
- @list << case list.type
35
- when :BULLET then
36
- '*'
37
- when :NUMBER then
38
- '1'
39
- else
40
- list.type
41
- end
42
- end
35
+ def accept_raw(raw)
36
+ @res << raw.parts.join
37
+ end
43
38
 
44
- def accept_list_end(list)
45
- @list.pop
46
- end
39
+ def accept_verbatim(verbatim)
40
+ @res << verbatim.text.gsub(/^(\S)/, ' \1')
41
+ end
47
42
 
48
- def accept_list_item_start(list_item)
49
- @res << "#{' ' * (@list.size - 1)}#{@list.last}: "
50
- end
43
+ def accept_list_start(list)
44
+ @list << case list.type
45
+ when :BULLET
46
+ '*'
47
+ when :NUMBER
48
+ '1'
49
+ else
50
+ list.type
51
+ end
52
+ end
51
53
 
52
- def accept_list_item_end(list_item)
53
- end
54
+ def accept_list_end(list)
55
+ @list.pop
56
+ end
54
57
 
55
- def accept_blank_line(blank_line)
56
- @res << "\n"
57
- end
58
+ def accept_list_item_start(list_item)
59
+ @res << "#{' ' * (@list.size - 1)}#{@list.last}: "
60
+ end
58
61
 
59
- def accept_heading(heading)
60
- @res << "#{'=' * heading.level} #{heading.text}"
61
- end
62
+ def accept_list_item_end(list_item)
63
+ end
62
64
 
63
- def accept_rule(rule)
64
- @res << '-' * rule.weight
65
- end
65
+ def accept_blank_line(blank_line)
66
+ @res << "\n"
67
+ end
66
68
 
67
- # :startdoc:
69
+ def accept_heading(heading)
70
+ @res << "#{'=' * heading.level} #{heading.text}"
71
+ end
68
72
 
73
+ def accept_rule(rule)
74
+ @res << '-' * rule.weight
75
+ end
76
+
77
+ # :startdoc:
78
+
79
+ end
80
+ end
69
81
  end
@@ -1,120 +1,111 @@
1
1
  # frozen_string_literal: true
2
- ##
3
- # Extracts sections of text enclosed in plus, tt or code. Used to discover
4
- # undocumented parameters.
2
+ module RDoc
3
+ class Markup
4
+ ##
5
+ # Extracts sections of text enclosed in plus, tt or code. Used to discover
6
+ # undocumented parameters.
5
7
 
6
- class RDoc::Markup::ToTtOnly < RDoc::Markup::Formatter
8
+ class ToTtOnly < Markup::Formatter
7
9
 
8
- ##
9
- # Stack of list types
10
+ ##
11
+ # Stack of list types
10
12
 
11
- attr_reader :list_type
13
+ attr_reader :list_type
12
14
 
13
- ##
14
- # Output accumulator
15
+ ##
16
+ # Output accumulator
15
17
 
16
- attr_reader :res
18
+ attr_reader :res
17
19
 
18
- ##
19
- # Creates a new tt-only formatter.
20
+ ##
21
+ # Adds tts from +block_quote+ to the output
20
22
 
21
- def initialize(markup = nil)
22
- super nil, markup
23
-
24
- add_tag :TT, nil, nil
25
- end
26
-
27
- ##
28
- # Adds tts from +block_quote+ to the output
29
-
30
- def accept_block_quote(block_quote)
31
- tt_sections block_quote.text
32
- end
23
+ def accept_block_quote(block_quote)
24
+ tt_sections block_quote.text
25
+ end
33
26
 
34
- ##
35
- # Pops the list type for +list+ from #list_type
27
+ ##
28
+ # Pops the list type for +list+ from #list_type
36
29
 
37
- def accept_list_end(list)
38
- @list_type.pop
39
- end
30
+ def accept_list_end(list)
31
+ @list_type.pop
32
+ end
40
33
 
41
- ##
42
- # Pushes the list type for +list+ onto #list_type
34
+ ##
35
+ # Pushes the list type for +list+ onto #list_type
43
36
 
44
- def accept_list_start(list)
45
- @list_type << list.type
46
- end
37
+ def accept_list_start(list)
38
+ @list_type << list.type
39
+ end
47
40
 
48
- ##
49
- # Prepares the visitor for consuming +list_item+
41
+ ##
42
+ # Prepares the visitor for consuming +list_item+
50
43
 
51
- def accept_list_item_start(list_item)
52
- case @list_type.last
53
- when :NOTE, :LABEL then
54
- Array(list_item.label).map do |label|
55
- tt_sections label
56
- end.flatten
57
- end
58
- end
44
+ def accept_list_item_start(list_item)
45
+ case @list_type.last
46
+ when :NOTE, :LABEL
47
+ Array(list_item.label).map do |label|
48
+ tt_sections label
49
+ end.flatten
50
+ end
51
+ end
59
52
 
60
- ##
61
- # Adds +paragraph+ to the output
53
+ ##
54
+ # Adds +paragraph+ to the output
62
55
 
63
- def accept_paragraph(paragraph)
64
- tt_sections(paragraph.text)
65
- end
56
+ def accept_paragraph(paragraph)
57
+ tt_sections(paragraph.text)
58
+ end
66
59
 
67
- ##
68
- # Does nothing to +markup_item+ because it doesn't have any user-built
69
- # content
60
+ ##
61
+ # Does nothing to +markup_item+ because it doesn't have any user-built
62
+ # content
70
63
 
71
- def do_nothing(markup_item)
72
- end
64
+ def do_nothing(markup_item)
65
+ end
73
66
 
74
- alias accept_blank_line do_nothing # :nodoc:
75
- alias accept_heading do_nothing # :nodoc:
76
- alias accept_list_item_end do_nothing # :nodoc:
77
- alias accept_raw do_nothing # :nodoc:
78
- alias accept_rule do_nothing # :nodoc:
79
- alias accept_verbatim do_nothing # :nodoc:
80
-
81
- ##
82
- # Extracts tt sections from +text+
83
-
84
- def tt_sections(text)
85
- flow = @am.flow text.dup
86
-
87
- flow.each do |item|
88
- case item
89
- when String then
90
- @res << item if in_tt?
91
- when RDoc::Markup::AttrChanger then
92
- off_tags res, item
93
- on_tags res, item
94
- when RDoc::Markup::RegexpHandling then
95
- @res << convert_regexp_handling(item) if in_tt? # TODO can this happen?
96
- else
97
- raise "Unknown flow element: #{item.inspect}"
67
+ alias accept_blank_line do_nothing # :nodoc:
68
+ alias accept_heading do_nothing # :nodoc:
69
+ alias accept_list_item_end do_nothing # :nodoc:
70
+ alias accept_raw do_nothing # :nodoc:
71
+ alias accept_rule do_nothing # :nodoc:
72
+ alias accept_verbatim do_nothing # :nodoc:
73
+
74
+ ##
75
+ # Extracts tt sections from +text+
76
+
77
+ def tt_sections(text)
78
+ parsed = Markup::InlineParser.new(text).parse
79
+ traverse = -> node {
80
+ next if String === node
81
+ if node[:type] == :TT
82
+ res << nil
83
+ res << node[:children][0] || ''
84
+ res << nil
85
+ else
86
+ node[:children].each(&traverse)
87
+ end
88
+ }
89
+ parsed.each(&traverse)
90
+ res
98
91
  end
99
- end
100
92
 
101
- res
102
- end
93
+ ##
94
+ # Returns an Array of items that were wrapped in plus, tt or code.
103
95
 
104
- ##
105
- # Returns an Array of items that were wrapped in plus, tt or code.
96
+ def end_accepting
97
+ @res.compact
98
+ end
106
99
 
107
- def end_accepting
108
- @res.compact
109
- end
100
+ ##
101
+ # Prepares the visitor for gathering tt sections
110
102
 
111
- ##
112
- # Prepares the visitor for gathering tt sections
103
+ def start_accepting
104
+ @res = []
113
105
 
114
- def start_accepting
115
- @res = []
106
+ @list_type = []
107
+ end
116
108
 
117
- @list_type = []
109
+ end
118
110
  end
119
-
120
111
  end
@@ -1,83 +1,87 @@
1
1
  # frozen_string_literal: true
2
- ##
3
- # A section of verbatim text
2
+ module RDoc
3
+ class Markup
4
+ ##
5
+ # A section of verbatim text
4
6
 
5
- class RDoc::Markup::Verbatim < RDoc::Markup::Raw
7
+ class Verbatim < Markup::Raw
6
8
 
7
- ##
8
- # Format of this verbatim section
9
+ ##
10
+ # Format of this verbatim section
9
11
 
10
- attr_accessor :format
12
+ attr_accessor :format
11
13
 
12
- def initialize *parts # :nodoc:
13
- super
14
+ def initialize(*parts) # :nodoc:
15
+ super
14
16
 
15
- @format = nil
16
- end
17
-
18
- def ==(other) # :nodoc:
19
- super and @format == other.format
20
- end
17
+ @format = nil
18
+ end
21
19
 
22
- ##
23
- # Calls #accept_verbatim on +visitor+
20
+ def ==(other) # :nodoc:
21
+ super and @format == other.format
22
+ end
24
23
 
25
- def accept(visitor)
26
- visitor.accept_verbatim self
27
- end
24
+ ##
25
+ # Calls #accept_verbatim on +visitor+
28
26
 
29
- ##
30
- # Collapses 3+ newlines into two newlines
27
+ def accept(visitor)
28
+ visitor.accept_verbatim self
29
+ end
31
30
 
32
- def normalize
33
- parts = []
31
+ ##
32
+ # Collapses 3+ newlines into two newlines
34
33
 
35
- newlines = 0
34
+ def normalize
35
+ parts = []
36
36
 
37
- @parts.each do |part|
38
- case part
39
- when /^\s*\n/ then
40
- newlines += 1
41
- parts << part if newlines == 1
42
- else
43
37
  newlines = 0
44
- parts << part
45
- end
46
- end
47
38
 
48
- parts.pop if parts.last =~ /\A\r?\n\z/
49
-
50
- @parts = parts
51
- end
39
+ @parts.each do |part|
40
+ case part
41
+ when /^\s*\n/
42
+ newlines += 1
43
+ parts << part if newlines == 1
44
+ else
45
+ newlines = 0
46
+ parts << part
47
+ end
48
+ end
52
49
 
53
- def pretty_print(q) # :nodoc:
54
- self.class.name =~ /.*::(\w{1,4})/i
50
+ parts.pop if parts.last =~ /\A\r?\n\z/
55
51
 
56
- q.group 2, "[#{$1.downcase}: ", ']' do
57
- if @format then
58
- q.text "format: #{@format}"
59
- q.breakable
52
+ @parts = parts
60
53
  end
61
54
 
62
- q.seplist @parts do |part|
63
- q.pp part
55
+ def pretty_print(q) # :nodoc:
56
+ self.class.name =~ /.*::(\w{1,4})/i
57
+
58
+ q.group 2, "[#{$1.downcase}: ", ']' do
59
+ if @format
60
+ q.text "format: #{@format}"
61
+ q.breakable
62
+ end
63
+
64
+ q.seplist @parts do |part|
65
+ q.pp part
66
+ end
67
+ end
64
68
  end
65
- end
66
- end
67
69
 
68
- ##
69
- # Is this verbatim section Ruby code?
70
+ ##
71
+ # Is this verbatim section Ruby code?
70
72
 
71
- def ruby?
72
- @format ||= nil # TODO for older ri data, switch the tree to marshal_dump
73
- @format == :ruby
74
- end
73
+ def ruby?
74
+ @format ||= nil # TODO for older ri data, switch the tree to marshal_dump
75
+ @format == :ruby || @format == :rb
76
+ end
75
77
 
76
- ##
77
- # The text of the section
78
+ ##
79
+ # The text of the section
78
80
 
79
- def text
80
- @parts.join
81
- end
81
+ def text
82
+ @parts.join
83
+ end
82
84
 
85
+ end
86
+ end
83
87
  end