rdoc 8.0.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.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +1 -3
- data/RI.md +75 -75
- data/exe/rdoc +2 -2
- data/lib/rdoc/code_object/alias.rb +71 -69
- data/lib/rdoc/code_object/any_method.rb +305 -303
- data/lib/rdoc/code_object/attr.rb +150 -148
- data/lib/rdoc/code_object/class_module.rb +798 -792
- data/lib/rdoc/code_object/constant.rb +175 -173
- data/lib/rdoc/code_object/context/section.rb +142 -138
- data/lib/rdoc/code_object/context.rb +926 -958
- data/lib/rdoc/code_object/extend.rb +7 -5
- data/lib/rdoc/code_object/include.rb +7 -5
- data/lib/rdoc/code_object/method_attr.rb +326 -319
- data/lib/rdoc/code_object/mixin.rb +97 -95
- data/lib/rdoc/code_object/normal_class.rb +77 -78
- data/lib/rdoc/code_object/normal_module.rb +61 -59
- data/lib/rdoc/code_object/require.rb +23 -39
- data/lib/rdoc/code_object/single_class.rb +21 -19
- data/lib/rdoc/code_object/top_level.rb +212 -219
- data/lib/rdoc/code_object.rb +305 -303
- data/lib/rdoc/comment.rb +275 -273
- data/lib/rdoc/cross_reference.rb +192 -190
- data/lib/rdoc/encoding.rb +105 -103
- data/lib/rdoc/erb_partial.rb +13 -11
- data/lib/rdoc/erbio.rb +29 -27
- data/lib/rdoc/generator/aliki.rb +161 -153
- data/lib/rdoc/generator/darkfish.rb +645 -635
- data/lib/rdoc/generator/json_index.rb +233 -229
- data/lib/rdoc/generator/markup.rb +164 -146
- data/lib/rdoc/generator/pot/message_extractor.rb +57 -51
- data/lib/rdoc/generator/pot/po.rb +52 -51
- data/lib/rdoc/generator/pot/po_entry.rb +138 -132
- data/lib/rdoc/generator/pot.rb +85 -81
- data/lib/rdoc/generator/ri.rb +23 -19
- data/lib/rdoc/generator/template/aliki/DESIGN.md +6 -4
- data/lib/rdoc/generator/template/aliki/_footer.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_head.rhtml +10 -10
- data/lib/rdoc/generator/template/aliki/_header.rhtml +29 -44
- data/lib/rdoc/generator/template/aliki/_sidebar_search.rhtml +4 -4
- data/lib/rdoc/generator/template/aliki/css/rdoc.css +207 -178
- data/lib/rdoc/generator/template/aliki/js/aliki.js +60 -84
- data/lib/rdoc/generator/template/darkfish/_footer.rhtml +1 -1
- data/lib/rdoc/generator.rb +48 -46
- data/lib/rdoc/i18n/locale.rb +99 -95
- data/lib/rdoc/i18n/text.rb +109 -105
- data/lib/rdoc/i18n.rb +7 -5
- data/lib/rdoc/markdown/byte_runtime.rb +80 -0
- data/lib/rdoc/markdown.kpeg +15 -11
- data/lib/rdoc/markdown.rb +40 -47
- data/lib/rdoc/markup/block_quote.rb +12 -8
- data/lib/rdoc/markup/document.rb +127 -123
- data/lib/rdoc/markup/formatter.rb +219 -215
- data/lib/rdoc/markup/include.rb +33 -29
- data/lib/rdoc/markup/indented_paragraph.rb +37 -33
- data/lib/rdoc/markup/inline_parser.rb +281 -277
- data/lib/rdoc/markup/list.rb +80 -88
- data/lib/rdoc/markup/list_item.rb +73 -85
- data/lib/rdoc/markup/paragraph.rb +23 -19
- data/lib/rdoc/markup/parser.rb +501 -497
- data/lib/rdoc/markup/pre_process.rb +283 -279
- data/lib/rdoc/markup/raw.rb +2 -2
- data/lib/rdoc/markup/rule.rb +16 -12
- data/lib/rdoc/markup/to_ansi.rb +143 -139
- data/lib/rdoc/markup/to_bs.rb +72 -68
- data/lib/rdoc/markup/to_html.rb +594 -565
- data/lib/rdoc/markup/to_html_crossref.rb +234 -230
- data/lib/rdoc/markup/to_html_snippet.rb +232 -227
- data/lib/rdoc/markup/to_joined_paragraph.rb +36 -32
- data/lib/rdoc/markup/to_label.rb +63 -59
- data/lib/rdoc/markup/to_markdown.rb +212 -208
- data/lib/rdoc/markup/to_rdoc.rb +336 -332
- data/lib/rdoc/markup/to_table_of_contents.rb +66 -62
- data/lib/rdoc/markup/to_test.rb +60 -56
- data/lib/rdoc/markup/to_tt_only.rb +84 -80
- data/lib/rdoc/markup/verbatim.rb +62 -58
- data/lib/rdoc/markup.rb +198 -196
- data/lib/rdoc/options.rb +1063 -1061
- data/lib/rdoc/parser/c.rb +1039 -1037
- data/lib/rdoc/parser/changelog.rb +319 -315
- data/lib/rdoc/parser/markdown.rb +17 -13
- data/lib/rdoc/parser/rbs.rb +239 -235
- data/lib/rdoc/parser/rd.rb +17 -13
- data/lib/rdoc/parser/ruby.rb +1245 -1124
- data/lib/rdoc/parser/ruby_colorizer.rb +263 -213
- data/lib/rdoc/parser/simple.rb +31 -27
- data/lib/rdoc/parser/text.rb +12 -8
- data/lib/rdoc/parser.rb +228 -220
- data/lib/rdoc/rbs_helper.rb +1 -1
- data/lib/rdoc/rd/inline.rb +57 -53
- data/lib/rdoc/rd.rb +90 -88
- data/lib/rdoc/rdoc.rb +500 -491
- data/lib/rdoc/ri/driver.rb +1140 -1135
- data/lib/rdoc/ri/formatter.rb +7 -3
- data/lib/rdoc/ri/paths.rb +140 -136
- data/lib/rdoc/ri/servlet.rb +354 -350
- data/lib/rdoc/ri/store.rb +4 -2
- data/lib/rdoc/ri/task.rb +55 -51
- data/lib/rdoc/ri.rb +14 -12
- data/lib/rdoc/rubygems_hook.rb +183 -181
- data/lib/rdoc/server.rb +349 -347
- data/lib/rdoc/stats/normal.rb +46 -42
- data/lib/rdoc/stats/quiet.rb +39 -35
- data/lib/rdoc/stats/verbose.rb +35 -31
- data/lib/rdoc/stats.rb +365 -363
- data/lib/rdoc/store.rb +888 -902
- data/lib/rdoc/task.rb +260 -256
- data/lib/rdoc/text.rb +135 -133
- data/lib/rdoc/token_stream.rb +101 -93
- data/lib/rdoc/tom_doc.rb +203 -201
- data/lib/rdoc/version.rb +1 -1
- metadata +4 -5
- data/lib/rdoc/markdown/literals.kpeg +0 -21
- data/lib/rdoc/markdown/literals.rb +0 -454
|
@@ -1,88 +1,92 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
|
8
|
+
class ToTableOfContents < Markup::Formatter
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
@to_toc = nil
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
##
|
|
13
|
+
# Singleton for table-of-contents generation
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
def self.to_toc
|
|
16
|
+
@to_toc ||= new
|
|
17
|
+
end
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
##
|
|
20
|
+
# Output accumulator
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
attr_reader :res
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
##
|
|
25
|
+
# Omits headings with a level less than the given level.
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
attr_accessor :omit_headings_below
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
def initialize # :nodoc:
|
|
30
|
+
super
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
@omit_headings_below = nil
|
|
33
|
+
end
|
|
32
34
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
##
|
|
36
|
+
# Adds +document+ to the output, using its heading cutoff if present
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
def accept_document(document)
|
|
39
|
+
@omit_headings_below = document.omit_headings_below
|
|
38
40
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
super
|
|
42
|
+
end
|
|
41
43
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
##
|
|
45
|
+
# Adds +heading+ to the table of contents
|
|
44
46
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
def accept_heading(heading)
|
|
48
|
+
@res << heading unless suppressed? heading
|
|
49
|
+
end
|
|
48
50
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
##
|
|
52
|
+
# Returns the table of contents
|
|
51
53
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
def end_accepting
|
|
55
|
+
@res
|
|
56
|
+
end
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
##
|
|
59
|
+
# Prepares the visitor for text generation
|
|
58
60
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
def start_accepting
|
|
62
|
+
@omit_headings_below = nil
|
|
63
|
+
@res = []
|
|
64
|
+
end
|
|
63
65
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
+
##
|
|
67
|
+
# Returns true if +heading+ is below the display threshold
|
|
66
68
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
def suppressed?(heading)
|
|
70
|
+
return false unless @omit_headings_below
|
|
69
71
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
+
heading.level > @omit_headings_below
|
|
73
|
+
end
|
|
72
74
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
data/lib/rdoc/markup/to_test.rb
CHANGED
|
@@ -1,77 +1,81 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
module RDoc
|
|
3
|
+
class Markup
|
|
4
|
+
##
|
|
5
|
+
# This Markup outputter is used for testing purposes.
|
|
4
6
|
|
|
5
|
-
class
|
|
7
|
+
class ToTest < Markup::Formatter
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
# :stopdoc:
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
##
|
|
12
|
+
# :section: Visitor
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
def start_accepting
|
|
15
|
+
@res = []
|
|
16
|
+
@list = []
|
|
17
|
+
end
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
def end_accepting
|
|
20
|
+
@res
|
|
21
|
+
end
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
def handle_PLAIN_TEXT(text)
|
|
24
|
+
@res << text
|
|
25
|
+
end
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
def handle_REGEXP_HANDLING_TEXT(text)
|
|
28
|
+
@res << text
|
|
29
|
+
end
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
def accept_paragraph(paragraph)
|
|
32
|
+
handle_inline(paragraph.text)
|
|
33
|
+
end
|
|
32
34
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
def accept_raw(raw)
|
|
36
|
+
@res << raw.parts.join
|
|
37
|
+
end
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
def accept_verbatim(verbatim)
|
|
40
|
+
@res << verbatim.text.gsub(/^(\S)/, ' \1')
|
|
41
|
+
end
|
|
40
42
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
def accept_list_end(list)
|
|
55
|
+
@list.pop
|
|
56
|
+
end
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
def accept_list_item_start(list_item)
|
|
59
|
+
@res << "#{' ' * (@list.size - 1)}#{@list.last}: "
|
|
60
|
+
end
|
|
59
61
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
def accept_list_item_end(list_item)
|
|
63
|
+
end
|
|
62
64
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
def accept_blank_line(blank_line)
|
|
66
|
+
@res << "\n"
|
|
67
|
+
end
|
|
66
68
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
def accept_heading(heading)
|
|
70
|
+
@res << "#{'=' * heading.level} #{heading.text}"
|
|
71
|
+
end
|
|
70
72
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
def accept_rule(rule)
|
|
74
|
+
@res << '-' * rule.weight
|
|
75
|
+
end
|
|
74
76
|
|
|
75
|
-
|
|
77
|
+
# :startdoc:
|
|
76
78
|
|
|
79
|
+
end
|
|
80
|
+
end
|
|
77
81
|
end
|
|
@@ -1,107 +1,111 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
|
8
|
+
class ToTtOnly < Markup::Formatter
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
##
|
|
11
|
+
# Stack of list types
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
attr_reader :list_type
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
##
|
|
16
|
+
# Output accumulator
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
attr_reader :res
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
##
|
|
21
|
+
# Adds tts from +block_quote+ to the output
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
def accept_block_quote(block_quote)
|
|
24
|
+
tt_sections block_quote.text
|
|
25
|
+
end
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
##
|
|
28
|
+
# Pops the list type for +list+ from #list_type
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
def accept_list_end(list)
|
|
31
|
+
@list_type.pop
|
|
32
|
+
end
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
##
|
|
35
|
+
# Pushes the list type for +list+ onto #list_type
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
def accept_list_start(list)
|
|
38
|
+
@list_type << list.type
|
|
39
|
+
end
|
|
38
40
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
##
|
|
42
|
+
# Prepares the visitor for consuming +list_item+
|
|
41
43
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
|
50
52
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
##
|
|
54
|
+
# Adds +paragraph+ to the output
|
|
53
55
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
def accept_paragraph(paragraph)
|
|
57
|
+
tt_sections(paragraph.text)
|
|
58
|
+
end
|
|
57
59
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
##
|
|
61
|
+
# Does nothing to +markup_item+ because it doesn't have any user-built
|
|
62
|
+
# content
|
|
61
63
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
def do_nothing(markup_item)
|
|
65
|
+
end
|
|
64
66
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
|
85
91
|
end
|
|
86
|
-
}
|
|
87
|
-
parsed.each(&traverse)
|
|
88
|
-
res
|
|
89
|
-
end
|
|
90
92
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
+
##
|
|
94
|
+
# Returns an Array of items that were wrapped in plus, tt or code.
|
|
93
95
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
def end_accepting
|
|
97
|
+
@res.compact
|
|
98
|
+
end
|
|
97
99
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
+
##
|
|
101
|
+
# Prepares the visitor for gathering tt sections
|
|
100
102
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
+
def start_accepting
|
|
104
|
+
@res = []
|
|
103
105
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
+
@list_type = []
|
|
107
|
+
end
|
|
106
108
|
|
|
109
|
+
end
|
|
110
|
+
end
|
|
107
111
|
end
|
data/lib/rdoc/markup/verbatim.rb
CHANGED
|
@@ -1,83 +1,87 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
module RDoc
|
|
3
|
+
class Markup
|
|
4
|
+
##
|
|
5
|
+
# A section of verbatim text
|
|
4
6
|
|
|
5
|
-
class
|
|
7
|
+
class Verbatim < Markup::Raw
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
##
|
|
10
|
+
# Format of this verbatim section
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
attr_accessor :format
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
def initialize(*parts) # :nodoc:
|
|
15
|
+
super
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def ==(other) # :nodoc:
|
|
19
|
-
super and @format == other.format
|
|
20
|
-
end
|
|
17
|
+
@format = nil
|
|
18
|
+
end
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
def ==(other) # :nodoc:
|
|
21
|
+
super and @format == other.format
|
|
22
|
+
end
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
end
|
|
24
|
+
##
|
|
25
|
+
# Calls #accept_verbatim on +visitor+
|
|
28
26
|
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
def accept(visitor)
|
|
28
|
+
visitor.accept_verbatim self
|
|
29
|
+
end
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
##
|
|
32
|
+
# Collapses 3+ newlines into two newlines
|
|
34
33
|
|
|
35
|
-
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
54
|
-
self.class.name =~ /.*::(\w{1,4})/i
|
|
50
|
+
parts.pop if parts.last =~ /\A\r?\n\z/
|
|
55
51
|
|
|
56
|
-
|
|
57
|
-
if @format then
|
|
58
|
-
q.text "format: #{@format}"
|
|
59
|
-
q.breakable
|
|
52
|
+
@parts = parts
|
|
60
53
|
end
|
|
61
54
|
|
|
62
|
-
q
|
|
63
|
-
|
|
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
|
-
|
|
70
|
+
##
|
|
71
|
+
# Is this verbatim section Ruby code?
|
|
70
72
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
78
|
+
##
|
|
79
|
+
# The text of the section
|
|
78
80
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
81
|
+
def text
|
|
82
|
+
@parts.join
|
|
83
|
+
end
|
|
82
84
|
|
|
85
|
+
end
|
|
86
|
+
end
|
|
83
87
|
end
|