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,181 +0,0 @@
1
- require File.expand_path '../xref_test_case', __FILE__
2
-
3
- class TestRDocConstant < XrefTestCase
4
-
5
- def setup
6
- super
7
-
8
- @const = @c1.constants.first
9
- end
10
-
11
- def test_documented_eh
12
- top_level = @store.add_file 'file.rb'
13
-
14
- const = RDoc::Constant.new 'CONST', nil, nil
15
- top_level.add_constant const
16
-
17
- refute const.documented?
18
-
19
- const.comment = comment 'comment'
20
-
21
- assert const.documented?
22
- end
23
-
24
- def test_documented_eh_alias
25
- top_level = @store.add_file 'file.rb'
26
-
27
- const = RDoc::Constant.new 'CONST', nil, nil
28
- top_level.add_constant const
29
-
30
- refute const.documented?
31
-
32
- const.is_alias_for = 'C1'
33
-
34
- refute const.documented?
35
-
36
- @c1.add_comment comment('comment'), @top_level
37
-
38
- assert const.documented?
39
- end
40
-
41
- def test_full_name
42
- assert_equal 'C1::CONST', @const.full_name
43
- end
44
-
45
- def test_is_alias_for
46
- top_level = @store.add_file 'file.rb'
47
-
48
- c = RDoc::Constant.new 'CONST', nil, 'comment'
49
- top_level.add_constant c
50
-
51
- assert_nil c.is_alias_for
52
-
53
- c.is_alias_for = 'C1'
54
-
55
- assert_equal @c1, c.is_alias_for
56
-
57
- c.is_alias_for = 'unknown'
58
-
59
- assert_equal 'unknown', c.is_alias_for
60
- end
61
-
62
- def test_marshal_dump
63
- top_level = @store.add_file 'file.rb'
64
-
65
- c = RDoc::Constant.new 'CONST', nil, 'this is a comment'
66
- c.record_location top_level
67
-
68
- aliased = top_level.add_class RDoc::NormalClass, 'Aliased'
69
- c.is_alias_for = aliased
70
-
71
- cm = top_level.add_class RDoc::NormalClass, 'Klass'
72
- cm.add_constant c
73
-
74
- section = cm.sections.first
75
-
76
- loaded = Marshal.load Marshal.dump c
77
- loaded.store = @store
78
-
79
- comment = doc(para('this is a comment'))
80
-
81
- assert_equal c, loaded
82
-
83
- assert_equal aliased, loaded.is_alias_for
84
- assert_equal comment, loaded.comment
85
- assert_equal top_level, loaded.file
86
- assert_equal 'Klass::CONST', loaded.full_name
87
- assert_equal 'CONST', loaded.name
88
- assert_nil loaded.visibility
89
- assert_equal cm, loaded.parent
90
- assert_equal section, loaded.section
91
- end
92
-
93
- def test_marshal_load
94
- top_level = @store.add_file 'file.rb'
95
-
96
- c = RDoc::Constant.new 'CONST', nil, 'this is a comment'
97
- c.record_location top_level
98
-
99
- cm = top_level.add_class RDoc::NormalClass, 'Klass'
100
- cm.add_constant c
101
-
102
- section = cm.sections.first
103
-
104
- loaded = Marshal.load Marshal.dump c
105
- loaded.store = @store
106
-
107
- comment = doc(para('this is a comment'))
108
-
109
- assert_equal c, loaded
110
-
111
- assert_nil loaded.is_alias_for
112
- assert_equal comment, loaded.comment
113
- assert_equal top_level, loaded.file
114
- assert_equal 'Klass::CONST', loaded.full_name
115
- assert_equal 'CONST', loaded.name
116
- assert_nil loaded.visibility
117
- assert_equal cm, loaded.parent
118
- assert_equal section, loaded.section
119
-
120
- assert loaded.display?
121
- end
122
-
123
- def test_marshal_load_version_0
124
- top_level = @store.add_file 'file.rb'
125
-
126
- aliased = top_level.add_class RDoc::NormalClass, 'Aliased'
127
- cm = top_level.add_class RDoc::NormalClass, 'Klass'
128
- section = cm.sections.first
129
-
130
- loaded = Marshal.load "\x04\bU:\x13RDoc::Constant[\x0Fi\x00I" +
131
- "\"\nCONST\x06:\x06ETI\"\x11Klass::CONST\x06" +
132
- ";\x06T0I\"\fAliased\x06;\x06To" +
133
- ":\eRDoc::Markup::Document\a:\v@parts[\x06o" +
134
- ":\x1CRDoc::Markup::Paragraph\x06;\b[\x06I" +
135
- "\"\x16this is a comment\x06;\x06T:\n@file0I" +
136
- "\"\ffile.rb\x06;\x06TI\"\nKlass\x06" +
137
- ";\x06Tc\x16RDoc::NormalClass0"
138
-
139
- loaded.store = @store
140
-
141
- comment = doc(para('this is a comment'))
142
-
143
- assert_equal aliased, loaded.is_alias_for
144
- assert_equal comment, loaded.comment
145
- assert_equal top_level, loaded.file
146
- assert_equal 'Klass::CONST', loaded.full_name
147
- assert_equal 'CONST', loaded.name
148
- assert_nil loaded.visibility
149
- assert_equal cm, loaded.parent
150
- assert_equal section, loaded.section
151
-
152
- assert loaded.display?
153
- end
154
-
155
- def test_marshal_round_trip
156
- top_level = @store.add_file 'file.rb'
157
-
158
- c = RDoc::Constant.new 'CONST', nil, 'this is a comment'
159
- c.record_location top_level
160
- c.is_alias_for = 'Unknown'
161
-
162
- cm = top_level.add_class RDoc::NormalClass, 'Klass'
163
- cm.add_constant c
164
-
165
- section = cm.sections.first
166
-
167
- loaded = Marshal.load Marshal.dump c
168
- loaded.store = @store
169
-
170
- reloaded = Marshal.load Marshal.dump loaded
171
- reloaded.store = @store
172
-
173
- assert_equal section, reloaded.section
174
- assert_equal 'Unknown', reloaded.is_alias_for
175
- end
176
-
177
- def test_path
178
- assert_equal 'C1.html#CONST', @const.path
179
- end
180
-
181
- end
@@ -1,901 +0,0 @@
1
- require File.expand_path '../xref_test_case', __FILE__
2
-
3
- class TestRDocContext < XrefTestCase
4
-
5
- def setup
6
- super
7
-
8
- @context = RDoc::Context.new
9
- @context.store = @store
10
-
11
- @enumerator = # 1.8 vs 1.9
12
- Object.const_defined?(:Enumerator) ? Enumerator : Enumerable::Enumerator
13
- end
14
-
15
- def test_initialize
16
- assert_empty @context.in_files
17
- assert_equal 'unknown', @context.name
18
- assert_equal '', @context.comment
19
- assert_equal nil, @context.parent
20
- assert_equal :public, @context.visibility
21
- assert_equal 1, @context.sections.length
22
- assert_equal nil, @context.temporary_section
23
-
24
- assert_empty @context.classes_hash
25
- assert_empty @context.modules_hash
26
-
27
- assert_empty @context.method_list
28
- assert_empty @context.attributes
29
- assert_empty @context.aliases
30
- assert_empty @context.requires
31
- assert_empty @context.includes
32
- assert_empty @context.constants
33
- end
34
-
35
- def test_add_alias
36
- as = RDoc::Alias.new nil, 'old_name', 'new_name', 'comment'
37
-
38
- @context.add_alias as
39
-
40
- assert_equal [as], @context.external_aliases
41
- assert_equal [as], @context.unmatched_alias_lists['#old_name']
42
- end
43
-
44
- def test_add
45
- @context.add RDoc::Extend, 'Ext', 'comment'
46
- @context.add RDoc::Include, 'Incl', 'comment'
47
-
48
- refute_empty @context.extends
49
- refute_empty @context.includes
50
- end
51
-
52
- def test_add_alias_method_attr
53
- top_level = @store.add_file 'file.rb'
54
-
55
- attr = RDoc::Attr.new nil, 'old_name', 'R', ''
56
-
57
- as = RDoc::Alias.new nil, 'old_name', 'new_name', 'comment'
58
- as.record_location top_level
59
- as.parent = @context
60
-
61
- @context.add_attribute attr
62
- @context.add_alias as
63
-
64
- assert_empty @context.aliases
65
- assert_empty @context.unmatched_alias_lists
66
- assert_equal %w[old_name new_name], @context.attributes.map { |m| m.name }
67
-
68
- new = @context.attributes.last
69
- assert_equal top_level, new.file
70
- end
71
-
72
- def test_add_alias_method
73
- top_level = @store.add_file 'file.rb'
74
-
75
- meth = RDoc::AnyMethod.new nil, 'old_name'
76
- meth.singleton = false
77
-
78
- as = RDoc::Alias.new nil, 'old_name', 'new_name', 'comment'
79
- as.record_location top_level
80
- as.parent = @context
81
-
82
- @context.add_method meth
83
- @context.add_alias as
84
-
85
- assert_empty @context.aliases
86
- assert_empty @context.unmatched_alias_lists
87
- assert_equal %w[old_name new_name], @context.method_list.map { |m| m.name }
88
-
89
- new = @context.method_list.last
90
- assert_equal top_level, new.file
91
- end
92
-
93
- def test_add_alias_method_singleton
94
- meth = RDoc::AnyMethod.new nil, 'old_name'
95
- meth.singleton = true
96
-
97
- as = RDoc::Alias.new nil, 'old_name', 'new_name', 'comment'
98
- as.singleton = true
99
-
100
- as.parent = @context
101
-
102
- @context.add_method meth
103
- @context.add_alias as
104
-
105
- assert_empty @context.aliases
106
- assert_empty @context.unmatched_alias_lists
107
- assert_equal %w[old_name new_name], @context.method_list.map { |m| m.name }
108
-
109
- assert @context.method_list.last.singleton
110
- end
111
-
112
- def test_add_class
113
- @c1.add_class RDoc::NormalClass, 'Klass', 'Object'
114
-
115
- assert_includes @c1.classes.map { |k| k.full_name }, 'C1::Klass'
116
- assert_includes @store.all_classes.map { |k| k.full_name }, 'C1::Klass'
117
- end
118
-
119
- def test_add_class_basic_object
120
- skip 'BasicObject is 1.9 only' unless defined?(BasicObject)
121
-
122
- @xref_data.add_class RDoc::NormalClass, 'BasicObject'
123
-
124
- basic = @xref_data.find_module_named 'BasicObject'
125
-
126
- assert_nil basic.superclass
127
-
128
- @c1.add_class RDoc::NormalClass, 'BasicObject'
129
-
130
- basic = @c1.find_module_named 'BasicObject'
131
-
132
- assert_equal 'Object', basic.superclass
133
- end
134
-
135
- def test_add_class_object
136
- root_class = defined?(BasicObject) ? 'BasicObject' : nil
137
-
138
- @xref_data.add_class RDoc::NormalClass, 'Object'
139
-
140
- object = @xref_data.find_module_named 'Object'
141
-
142
- assert_equal root_class, object.superclass
143
-
144
- @c1.add_class RDoc::NormalClass, 'Object'
145
-
146
- object = @c1.find_module_named 'Object'
147
-
148
- assert_equal 'Object', object.superclass.full_name
149
- end
150
-
151
- def test_add_class_singleton
152
- @c1.add_class RDoc::NormalClass, 'Klass', 'Object'
153
-
154
- assert_includes @c1.classes.map { |k| k.full_name }, 'C1::Klass'
155
- assert_includes @store.all_classes.map { |k| k.full_name }, 'C1::Klass'
156
- end
157
-
158
- def test_add_class_superclass
159
- @c1.add_class RDoc::NormalClass, 'Klass', 'Object'
160
- @c1.add_class RDoc::NormalClass, 'Klass', 'Other'
161
- @c1.add_class RDoc::NormalClass, 'Klass', 'Object'
162
-
163
- klass = @c1.find_module_named 'Klass'
164
- assert_equal 'Other', klass.superclass
165
- end
166
-
167
- def test_add_class_upgrade
168
- @c1.add_module RDoc::NormalModule, 'Klass'
169
- @c1.add_class RDoc::NormalClass, 'Klass', nil
170
-
171
- assert_includes @c1.classes.map { |k| k.full_name }, 'C1::Klass',
172
- 'c1 classes'
173
- refute_includes @c1.modules.map { |k| k.full_name }, 'C1::Klass',
174
- 'c1 modules'
175
-
176
- assert_includes @store.all_classes.map { |k| k.full_name }, 'C1::Klass',
177
- 'TopLevel classes'
178
- refute_includes @store.all_modules.map { |k| k.full_name }, 'C1::Klass',
179
- 'TopLevel modules'
180
- end
181
-
182
- def test_add_constant
183
- const = RDoc::Constant.new 'NAME', 'value', 'comment'
184
- @context.add_constant const
185
-
186
- assert_equal [const], @context.constants
187
- end
188
-
189
- def test_add_extend
190
- ext = RDoc::Extend.new 'Name', 'comment'
191
- @context.add_extend ext
192
-
193
- assert_equal [ext], @context.extends
194
- end
195
-
196
- def test_add_include
197
- incl = RDoc::Include.new 'Name', 'comment'
198
- @context.add_include incl
199
-
200
- assert_equal [incl], @context.includes
201
- end
202
-
203
- def test_add_method
204
- meth = RDoc::AnyMethod.new nil, 'old_name'
205
- meth.visibility = nil
206
-
207
- @context.add_method meth
208
-
209
- assert_equal [meth], @context.method_list
210
- assert_equal :public, meth.visibility
211
- end
212
-
213
- def test_add_method_alias
214
- as = RDoc::Alias.new nil, 'old_name', 'new_name', 'comment'
215
- meth = RDoc::AnyMethod.new nil, 'old_name'
216
-
217
- @context.add_alias as
218
- refute_empty @context.external_aliases
219
-
220
- @context.add_method meth
221
-
222
- assert_empty @context.external_aliases
223
- assert_empty @context.unmatched_alias_lists
224
- assert_equal %w[old_name new_name], @context.method_list.map { |m| m.name }
225
- end
226
-
227
- def test_add_method_duplicate
228
- @store.rdoc.options.verbosity = 2
229
-
230
- meth1 = RDoc::AnyMethod.new nil, 'name'
231
- meth1.record_location @store.add_file 'first.rb'
232
- meth1.visibility = nil
233
- meth1.comment = comment 'first'
234
-
235
- @context.add_method meth1
236
-
237
- meth2 = RDoc::AnyMethod.new nil, 'name'
238
- meth2.record_location @store.add_file 'second.rb'
239
- meth2.comment = comment 'second'
240
-
241
- _, err = verbose_capture_io do
242
- @context.add_method meth2
243
- end
244
-
245
- expected = 'Duplicate method (unknown)#name in file second.rb, ' \
246
- 'previously in file first.rb'
247
-
248
- assert_equal expected, err.chomp
249
-
250
- method = @context.method_list.first
251
-
252
- assert_equal 'first', method.comment.text
253
- end
254
-
255
- def test_add_method_duplicate_loading
256
- @context.store = nil
257
-
258
- meth1 = RDoc::AnyMethod.new nil, 'name'
259
- meth1.record_location @store.add_file 'first.rb'
260
- meth1.visibility = nil
261
- meth1.comment = comment 'first'
262
-
263
- @context.add_method meth1
264
-
265
- meth2 = RDoc::AnyMethod.new nil, 'name'
266
- meth2.record_location @store.add_file 'second.rb'
267
- meth2.comment = comment 'second'
268
-
269
- _, err = verbose_capture_io do
270
- @context.add_method meth2
271
- end
272
-
273
- assert_empty err
274
-
275
- method = @context.method_list.first
276
-
277
- assert_equal 'first', method.comment.text
278
- end
279
-
280
- def test_add_module
281
- @c1.add_module RDoc::NormalModule, 'Mod'
282
-
283
- assert_includes @c1.modules.map { |m| m.full_name }, 'C1::Mod'
284
- end
285
-
286
- def test_add_module_alias
287
- tl = @store.add_file 'file.rb'
288
-
289
- c3_c4 = @c2.add_module_alias @c2_c3, 'C4', tl
290
-
291
- alias_constant = @c2.constants.first
292
-
293
- assert_equal 'C2::C4', c3_c4.full_name
294
- assert_equal tl, alias_constant.file
295
- end
296
-
297
- def test_add_module_alias_top_level
298
- store = RDoc::Store.new
299
-
300
- top_level = store.add_file 'file.rb'
301
-
302
- klass = top_level.add_class RDoc::NormalClass, 'Klass'
303
- klass.comment = 'klass comment'
304
-
305
- object = top_level.add_class RDoc::NormalClass, 'Object'
306
-
307
- top_level.add_module_alias klass, 'A', top_level
308
-
309
- refute_empty object.constants
310
-
311
- constant = object.constants.first
312
-
313
- assert_equal 'klass comment', constant.comment
314
- end
315
-
316
- def test_add_module_class
317
- k = @c1.add_class RDoc::NormalClass, 'Klass', nil
318
- m = @c1.add_module RDoc::NormalModule, 'Klass'
319
-
320
- assert_equal k, m, 'returns class'
321
- assert_empty @c1.modules
322
- end
323
-
324
- def test_add_require
325
- req = RDoc::Require.new 'require', 'comment'
326
- @c1.add_require req
327
-
328
- assert_empty @c1.requires
329
- assert_includes @c1.top_level.requires, req
330
- end
331
-
332
- def test_add_section
333
- default_section = @context.sections.first
334
-
335
- @context.add_section nil, comment('comment', @top_level)
336
-
337
- assert_equal 1, @context.sections.length
338
- assert_equal [comment("comment", @top_level)],
339
- @context.sections.first.comments
340
-
341
- @context.add_section nil, comment('new comment', @top_level)
342
-
343
- assert_equal 1, @context.sections.length
344
- assert_equal [comment('comment', @top_level),
345
- comment('new comment', @top_level)],
346
- @context.sections.first.comments
347
-
348
- @context.add_section 'other', comment('', @top_level)
349
-
350
- assert_equal 2, @context.sections.length
351
-
352
- new_section = @context.sections.find { |section| section.title == 'other' }
353
- assert new_section
354
- assert_equal default_section, @context.current_section
355
- end
356
-
357
- def test_add_section_no_comment
358
- default_section = @context.sections.first
359
-
360
- @context.add_section nil
361
-
362
- assert_equal 1, @context.sections.length
363
-
364
- @context.add_section 'other'
365
-
366
- assert_equal 2, @context.sections.length
367
-
368
- new_section = @context.sections.find { |section| section.title == 'other' }
369
-
370
- assert new_section
371
- assert_equal default_section, @context.current_section
372
- end
373
-
374
- def test_add_to
375
- incl = RDoc::Include.new 'Name', 'comment'
376
- arr = []
377
- @context.add_to arr, incl
378
-
379
- assert_includes arr, incl
380
- assert_equal @context, incl.parent
381
- assert_equal @context.current_section, incl.section
382
- end
383
-
384
- def test_add_to_temporary_section
385
- incl = RDoc::Include.new 'Name', 'comment'
386
- arr = []
387
- section =
388
- @context.add_section 'temporary', RDoc::Comment.new('', @top_level)
389
- @context.temporary_section = section
390
-
391
- @context.add_to arr, incl
392
-
393
- assert_includes arr, incl
394
- assert_equal @context, incl.parent
395
- assert_equal section, incl.section
396
- end
397
-
398
- def test_add_to_no_document_self
399
- incl = RDoc::Include.new 'Name', 'comment'
400
- arr = []
401
- @context.document_self = false
402
- @context.add_to arr, incl
403
-
404
- refute_includes arr, incl
405
- end
406
-
407
- def test_add_to_done_documenting
408
- incl = RDoc::Include.new 'Name', 'comment'
409
- arr = []
410
- @context.done_documenting = true
411
- @context.add_to arr, incl
412
-
413
- refute_includes arr, incl
414
- end
415
-
416
- def bench_add_include
417
- cm = RDoc::ClassModule.new 'Klass'
418
-
419
- assert_performance_linear 0.9 do |count|
420
- count.times do |i|
421
- cm.add_include RDoc::Include.new("N::M#{i}", nil)
422
- end
423
- end
424
- end
425
-
426
- def test_child_name
427
- assert_equal 'C1::C1', @c1.child_name('C1')
428
- end
429
-
430
- def test_classes
431
- assert_equal %w[C2::C3], @c2.classes.map { |k| k.full_name }
432
- assert_equal %w[C3::H1 C3::H2], @c3.classes.map { |k| k.full_name }.sort
433
- end
434
-
435
- def test_current_section
436
- default_section = @context.current_section
437
-
438
- new_section =
439
- @context.add_section 'other', RDoc::Comment.new('', @top_level)
440
- @context.temporary_section = new_section
441
-
442
- assert_equal new_section, @context.current_section
443
- assert_equal default_section, @context.current_section
444
- end
445
-
446
- def test_defined_in_eh
447
- assert @c1.defined_in?(@c1.top_level)
448
-
449
- refute @c1.defined_in?(@store.add_file('name.rb'))
450
- end
451
-
452
- def test_equals2
453
- assert_equal @c3, @c3
454
- refute_equal @c2, @c3
455
- refute_equal @c2_c3, @c3
456
- end
457
-
458
- def test_each_method_enumerator
459
- assert_kind_of @enumerator, @c1.each_method
460
- end
461
-
462
- def test_each_section
463
- sects = []
464
- consts = []
465
- attrs = []
466
-
467
- @c1.each_section do |section, constants, attributes|
468
- sects << section
469
- consts << constants
470
- attrs << attributes
471
- end
472
-
473
- assert_equal [nil, 'separate'], sects.map { |section| section.title }
474
-
475
- expected_consts = [
476
- [@c1.constants.first],
477
- [],
478
- ]
479
-
480
- assert_equal expected_consts, consts
481
-
482
- expected_attrs = [
483
- [@c1.attributes[0], @c1.attributes[3]],
484
- [@c1.attributes[1], @c1.attributes[2]],
485
- ]
486
-
487
- assert_equal expected_attrs, attrs
488
- end
489
-
490
- def test_each_section_enumerator
491
- assert_kind_of @enumerator, @c1.each_section
492
- end
493
-
494
- def test_find_attribute_named
495
- assert_equal nil, @c1.find_attribute_named('none')
496
- assert_equal 'R', @c1.find_attribute_named('attr').rw
497
- assert_equal 'R', @c1.find_attribute_named('attr_reader').rw
498
- assert_equal 'W', @c1.find_attribute_named('attr_writer').rw
499
- assert_equal 'RW', @c1.find_attribute_named('attr_accessor').rw
500
- end
501
-
502
- def test_find_class_method_named
503
- assert_equal nil, @c1.find_class_method_named('none')
504
-
505
- m = @c1.find_class_method_named('m')
506
- assert_instance_of RDoc::AnyMethod, m
507
- assert m.singleton
508
- end
509
-
510
- def test_find_constant_named
511
- assert_equal nil, @c1.find_constant_named('NONE')
512
- assert_equal ':const', @c1.find_constant_named('CONST').value
513
- end
514
-
515
- def test_find_enclosing_module_named
516
- assert_equal nil, @c2_c3.find_enclosing_module_named('NONE')
517
- assert_equal @c1, @c2_c3.find_enclosing_module_named('C1')
518
- assert_equal @c2, @c2_c3.find_enclosing_module_named('C2')
519
- end
520
-
521
- def test_find_file_named
522
- assert_equal nil, @c1.find_file_named('nonexistent.rb')
523
- assert_equal @xref_data, @c1.find_file_named(@file_name)
524
- end
525
-
526
- def test_find_instance_method_named
527
- assert_equal nil, @c1.find_instance_method_named('none')
528
-
529
- m = @c1.find_instance_method_named('m')
530
- assert_instance_of RDoc::AnyMethod, m
531
- refute m.singleton
532
- end
533
-
534
- def test_find_local_symbol
535
- assert_equal true, @c1.find_local_symbol('m').singleton
536
- assert_equal ':const', @c1.find_local_symbol('CONST').value
537
- assert_equal 'R', @c1.find_local_symbol('attr').rw
538
- assert_equal @xref_data, @c1.find_local_symbol(@file_name)
539
- assert_equal @c2_c3, @c2.find_local_symbol('C3')
540
- end
541
-
542
- def test_find_method_named
543
- assert_equal true, @c1.find_method_named('m').singleton
544
- end
545
-
546
- def test_find_module_named
547
- assert_equal @c2_c3, @c2.find_module_named('C3')
548
- assert_equal @c2, @c2.find_module_named('C2')
549
- assert_equal @c1, @c2.find_module_named('C1')
550
-
551
- assert_equal 'C2::C3', @c2.find_module_named('C3').full_name
552
- end
553
-
554
- def test_find_symbol
555
- c3 = @xref_data.find_module_named('C3')
556
- assert_equal c3, @xref_data.find_symbol('C3')
557
- assert_equal c3, @c2.find_symbol('::C3')
558
- assert_equal @c2_c3, @c2.find_symbol('C3')
559
- end
560
-
561
- def test_find_symbol_method
562
- assert_equal @c1__m, @c1.find_symbol('m')
563
- assert_equal @c1_m, @c1.find_symbol('#m')
564
- assert_equal @c1__m, @c1.find_symbol('::m')
565
- end
566
-
567
- def test_find_symbol_module
568
- assert_nil @m1_m2.find_symbol_module 'N'
569
- assert_nil @m1_m2.find_symbol_module 'M2::M1'
570
-
571
- @m1_m2.parent = nil # loaded from legacy ri store
572
-
573
- assert_nil @m1_m2.find_symbol_module 'N'
574
- assert_nil @m1_m2.find_symbol_module 'M2::M1'
575
- end
576
-
577
- def test_fully_documented_eh
578
- context = RDoc::Context.new
579
-
580
- refute context.fully_documented?
581
-
582
- context.comment = 'hi'
583
-
584
- assert context.fully_documented?
585
-
586
- m = @c1_m
587
-
588
- context.add_method m
589
-
590
- refute context.fully_documented?
591
-
592
- m.comment = 'hi'
593
-
594
- assert context.fully_documented?
595
-
596
- c = RDoc::Constant.new 'C', '0', nil
597
-
598
- context.add_constant c
599
-
600
- refute context.fully_documented?
601
-
602
- c.comment = 'hi'
603
-
604
- assert context.fully_documented?
605
-
606
- a = RDoc::Attr.new '', 'a', 'RW', nil
607
-
608
- context.add_attribute a
609
-
610
- refute context.fully_documented?
611
-
612
- a.comment = 'hi'
613
-
614
- assert context.fully_documented?
615
- end
616
-
617
- def test_spaceship
618
- assert_equal(-1, @c2.<=>(@c3))
619
- assert_equal 0, @c2.<=>(@c2)
620
- assert_equal 1, @c3.<=>(@c2)
621
-
622
- assert_equal 1, @c2_c3.<=>(@c2)
623
- assert_equal(-1, @c2_c3.<=>(@c3))
624
-
625
- assert_nil @c2.<=>(Gem.loaded_specs.values.first)
626
- end
627
-
628
- def test_methods_by_type
629
- expected = {
630
- 'instance' => {
631
- :private => [],
632
- :protected => [],
633
- :public => [@c1_m],
634
- },
635
- 'class' => {
636
- :private => [],
637
- :protected => [],
638
- :public => [@c1__m],
639
- },
640
- }
641
-
642
- assert_equal expected, @c1.methods_by_type
643
- end
644
-
645
- def test_methods_by_type_section
646
- separate = @c1.sections_hash['separate']
647
- @c1_m.section = separate
648
-
649
- expected = {
650
- 'instance' => {
651
- :private => [],
652
- :protected => [],
653
- :public => [@c1_m],
654
- },
655
- 'class' => {
656
- :private => [],
657
- :protected => [],
658
- :public => [],
659
- },
660
- }
661
-
662
- assert_equal expected, @c1.methods_by_type(separate)
663
- end
664
-
665
- def test_methods_matching
666
- methods = []
667
-
668
- @parent.methods_matching 'm' do |m|
669
- methods << m
670
- end
671
-
672
- assert_equal [@parent_m], methods
673
- end
674
-
675
- def test_methods_matching_singleton
676
- methods = []
677
-
678
- @parent.methods_matching 'm', true do |m|
679
- methods << m
680
- end
681
-
682
- assert_equal [@parent__m], methods
683
- end
684
-
685
- def test_methods_matching_inherit
686
- methods = []
687
-
688
- @child.methods_matching 'm' do |m|
689
- methods << m
690
- end
691
-
692
- assert_equal [@parent_m], methods
693
- end
694
-
695
- def test_remove_invisible_private
696
- util_visibilities
697
-
698
- @vis.remove_invisible :private
699
-
700
- assert_equal [@pub, @prot, @priv], @vis.method_list
701
- assert_equal [@apub, @aprot, @apriv], @vis.attributes
702
- end
703
-
704
- def test_remove_invisible_nodoc
705
- util_visibilities
706
-
707
- @vis.remove_invisible :nodoc
708
-
709
- assert_equal [@pub, @prot, @priv], @vis.method_list
710
- assert_equal [@apub, @aprot, @apriv], @vis.attributes
711
- end
712
-
713
- def test_remove_invisible_protected
714
- util_visibilities
715
-
716
- @vis.remove_invisible :protected
717
-
718
- assert_equal [@pub, @prot], @vis.method_list
719
- assert_equal [@apub, @aprot], @vis.attributes
720
- end
721
-
722
- def test_remove_invisible_public
723
- util_visibilities
724
-
725
- @vis.remove_invisible :public
726
-
727
- assert_equal [@pub], @vis.method_list
728
- assert_equal [@apub], @vis.attributes
729
- end
730
-
731
- def test_remove_invisible_public_force
732
- util_visibilities
733
-
734
- @priv.force_documentation = true
735
- @prot.force_documentation = true
736
- @apriv.force_documentation = true
737
- @aprot.force_documentation = true
738
-
739
- @vis.remove_invisible :public
740
-
741
- assert_equal [@pub, @prot, @priv], @vis.method_list
742
- assert_equal [@apub, @aprot, @apriv], @vis.attributes
743
- end
744
-
745
- def test_remove_invisible_in_protected
746
- util_visibilities
747
-
748
- methods = [@pub, @prot, @priv]
749
-
750
- @c1.remove_invisible_in methods, :protected
751
-
752
- assert_equal [@pub, @prot], methods
753
- end
754
-
755
- def test_remove_invisible_in_protected_force
756
- util_visibilities
757
-
758
- @priv.force_documentation = true
759
-
760
- methods = [@pub, @prot, @priv]
761
-
762
- @c1.remove_invisible_in methods, :protected
763
-
764
- assert_equal [@pub, @prot, @priv], methods
765
- end
766
-
767
- def test_remove_invisible_in_public
768
- util_visibilities
769
-
770
- methods = [@pub, @prot, @priv]
771
-
772
- @c1.remove_invisible_in methods, :public
773
-
774
- assert_equal [@pub], methods
775
- end
776
-
777
- def test_remove_invisible_in_public_force
778
- util_visibilities
779
-
780
- @prot.force_documentation = true
781
- @priv.force_documentation = true
782
-
783
- methods = [@pub, @prot, @priv]
784
-
785
- @c1.remove_invisible_in methods, :public
786
-
787
- assert_equal [@pub, @prot, @priv], methods
788
- end
789
-
790
- def test_section_contents
791
- default = @context.sections.first
792
- @context.add_method RDoc::AnyMethod.new(nil, 'm1')
793
-
794
- b = @context.add_section 'B'
795
- m = @context.add_method RDoc::AnyMethod.new(nil, 'm2')
796
- m.section = b
797
-
798
- assert_equal [default, b], @context.section_contents
799
- end
800
-
801
- def test_section_contents_no_default
802
- @context = RDoc::Context.new
803
- b = @context.add_section 'B'
804
- m = @context.add_method RDoc::AnyMethod.new(nil, 'm')
805
- m.section = b
806
-
807
- assert_equal [b], @context.section_contents
808
- end
809
-
810
- def test_section_contents_only_default
811
- @context = RDoc::Context.new
812
-
813
- @context.add_method RDoc::AnyMethod.new(nil, 'm')
814
-
815
- assert_empty @context.section_contents
816
- end
817
-
818
- def test_section_contents_unused
819
- @context = RDoc::Context.new
820
-
821
- @context.add_method RDoc::AnyMethod.new(nil, 'm')
822
- @context.add_section 'B'
823
-
824
- assert_empty @context.section_contents
825
- end
826
-
827
- def test_set_current_section
828
- default_section = @context.sections.first
829
-
830
- @context.set_current_section nil, RDoc::Comment.new('', @top_level)
831
-
832
- assert_equal default_section, @context.current_section
833
-
834
- @context.set_current_section 'other', RDoc::Comment.new('', @top_level)
835
-
836
- new_section = @context.sections.find { |section|
837
- section != default_section
838
- }
839
-
840
- assert_equal new_section, @context.current_section
841
- end
842
-
843
- def test_sort_sections
844
- c = RDoc::Context.new
845
- c.add_section 'C'
846
- c.add_section 'A'
847
- c.add_section 'B'
848
-
849
- titles = c.sort_sections.map { |section| section.title }
850
-
851
- assert_equal [nil, 'A', 'B', 'C'], titles
852
- end
853
-
854
- def test_sort_sections_tomdoc
855
- c = RDoc::Context.new
856
- c.add_section 'Public'
857
- c.add_section 'Internal'
858
- c.add_section 'Deprecated'
859
-
860
- titles = c.sort_sections.map { |section| section.title }
861
-
862
- assert_equal [nil, 'Public', 'Internal', 'Deprecated'], titles
863
- end
864
-
865
- def test_sort_sections_tomdoc_missing
866
- c = RDoc::Context.new
867
- c.add_section 'Internal'
868
- c.add_section 'Public'
869
-
870
- titles = c.sort_sections.map { |section| section.title }
871
-
872
- assert_equal [nil, 'Public', 'Internal'], titles
873
- end
874
-
875
- def util_visibilities
876
- @pub = RDoc::AnyMethod.new nil, 'pub'
877
- @prot = RDoc::AnyMethod.new nil, 'prot'
878
- @priv = RDoc::AnyMethod.new nil, 'priv'
879
-
880
- @apub = RDoc::Attr.new nil, 'pub', 'RW', nil
881
- @aprot = RDoc::Attr.new nil, 'prot', 'RW', nil
882
- @apriv = RDoc::Attr.new nil, 'priv', 'RW', nil
883
-
884
- @vis = RDoc::NormalClass.new 'Vis'
885
- @vis.add_method @pub
886
- @vis.add_method @prot
887
- @vis.add_method @priv
888
-
889
- @vis.add_attribute @apub
890
- @vis.add_attribute @aprot
891
- @vis.add_attribute @apriv
892
-
893
- @prot.visibility = :protected
894
- @priv.visibility = :private
895
-
896
- @aprot.visibility = :protected
897
- @apriv.visibility = :private
898
- end
899
-
900
- end
901
-