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,95 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocMarkup < RDoc::TestCase
4
-
5
- def test_class_parse
6
- expected = @RM::Document.new(
7
- @RM::Paragraph.new('hello'))
8
-
9
- assert_equal expected, RDoc::Markup.parse('hello')
10
- end
11
-
12
- def test_convert
13
- str = <<-STR
14
- now is
15
- the time
16
-
17
- hello
18
- dave
19
-
20
- 1. l1
21
- 2. l2
22
- STR
23
-
24
- m = RDoc::Markup.new
25
-
26
- tt = RDoc::Markup::ToTest.new m
27
-
28
- out = m.convert str, tt
29
-
30
- expected = [
31
- "now is the time",
32
- "\n",
33
- " hello\n dave\n",
34
- "1: ",
35
- "l1",
36
- "1: ",
37
- "l2",
38
- ]
39
-
40
- assert_equal expected, out
41
- end
42
-
43
- def test_convert_custom_markup
44
- str = <<-STR
45
- {stricken}
46
- STR
47
-
48
- m = RDoc::Markup.new
49
- m.add_word_pair '{', '}', :STRIKE
50
-
51
- tt = RDoc::Markup::ToTest.new nil, m
52
- tt.add_tag :STRIKE, 'STRIKE ', ' STRIKE'
53
-
54
- out = m.convert str, tt
55
-
56
- expected = [
57
- "STRIKE stricken STRIKE",
58
- ]
59
-
60
- assert_equal expected, out
61
- end
62
-
63
- def test_convert_document
64
- doc = RDoc::Markup::Parser.parse <<-STR
65
- now is
66
- the time
67
-
68
- hello
69
- dave
70
-
71
- 1. l1
72
- 2. l2
73
- STR
74
-
75
- m = RDoc::Markup.new
76
-
77
- tt = RDoc::Markup::ToTest.new m
78
-
79
- out = m.convert doc, tt
80
-
81
- expected = [
82
- "now is the time",
83
- "\n",
84
- " hello\n dave\n",
85
- "1: ",
86
- "l1",
87
- "1: ",
88
- "l2",
89
- ]
90
-
91
- assert_equal expected, out
92
- end
93
-
94
- end
95
-
@@ -1,364 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocMarkupAttributeManager < RDoc::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @am = RDoc::Markup::AttributeManager.new
9
-
10
- @bold_on = @am.changed_attribute_by_name([], [:BOLD])
11
- @bold_off = @am.changed_attribute_by_name([:BOLD], [])
12
-
13
- @tt_on = @am.changed_attribute_by_name([], [:TT])
14
- @tt_off = @am.changed_attribute_by_name([:TT], [])
15
-
16
- @em_on = @am.changed_attribute_by_name([], [:EM])
17
- @em_off = @am.changed_attribute_by_name([:EM], [])
18
-
19
- @bold_em_on = @am.changed_attribute_by_name([], [:BOLD] | [:EM])
20
- @bold_em_off = @am.changed_attribute_by_name([:BOLD] | [:EM], [])
21
-
22
- @em_then_bold = @am.changed_attribute_by_name([:EM], [:EM] | [:BOLD])
23
-
24
- @em_to_bold = @am.changed_attribute_by_name([:EM], [:BOLD])
25
-
26
- @am.add_word_pair("{", "}", :WOMBAT)
27
- @wombat_on = @am.changed_attribute_by_name([], [:WOMBAT])
28
- @wombat_off = @am.changed_attribute_by_name([:WOMBAT], [])
29
-
30
- @klass = RDoc::Markup::AttributeManager
31
- @formatter = RDoc::Markup::Formatter.new @rdoc.options
32
- @formatter.add_tag :BOLD, '<B>', '</B>'
33
- @formatter.add_tag :EM, '<EM>', '</EM>'
34
- @formatter.add_tag :TT, '<CODE>', '</CODE>'
35
- end
36
-
37
- def crossref(text)
38
- crossref_bitmap = @am.attributes.bitmap_for(:_SPECIAL_) |
39
- @am.attributes.bitmap_for(:CROSSREF)
40
-
41
- [ @am.changed_attribute_by_name([], [:CROSSREF, :_SPECIAL_]),
42
- RDoc::Markup::Special.new(crossref_bitmap, text),
43
- @am.changed_attribute_by_name([:CROSSREF, :_SPECIAL_], [])
44
- ]
45
- end
46
-
47
- def test_adding
48
- assert_equal(["cat ", @wombat_on, "and", @wombat_off, " dog" ],
49
- @am.flow("cat {and} dog"))
50
- #assert_equal(["cat {and} dog" ], @am.flow("cat \\{and} dog"))
51
- end
52
-
53
- def test_add_html_tag
54
- @am.add_html("Test", :TEST)
55
- tags = @am.html_tags
56
- assert_equal(6, tags.size)
57
- assert(tags.has_key?("test"))
58
- end
59
-
60
- def test_add_special
61
- @am.add_special "WikiWord", :WIKIWORD
62
- specials = @am.special
63
-
64
- assert_equal 1, specials.size
65
- assert specials.assoc "WikiWord"
66
- end
67
-
68
- def test_add_word_pair
69
- @am.add_word_pair '%', '&', 'percent and'
70
-
71
- assert @am.word_pair_map.include?(/(%)(\S+)(&)/)
72
- assert @am.protectable.include?('%')
73
- assert !@am.protectable.include?('&')
74
- end
75
-
76
- def test_add_word_pair_angle
77
- e = assert_raises ArgumentError do
78
- @am.add_word_pair '<', '>', 'angles'
79
- end
80
-
81
- assert_equal "Word flags may not start with '<'", e.message
82
- end
83
-
84
- def test_add_word_pair_invalid
85
- assert_raises ArgumentError do
86
- @am.add_word_pair("<", "<", :TEST)
87
- end
88
- end
89
-
90
- def test_add_word_pair_map
91
- @am.add_word_pair("x", "y", :TEST)
92
-
93
- word_pair_map = @am.word_pair_map
94
-
95
- assert_includes word_pair_map.keys.map { |r| r.source }, "(x)(\\S+)(y)"
96
- end
97
-
98
- def test_add_word_pair_matching
99
- @am.add_word_pair '^', '^', 'caret'
100
-
101
- assert @am.matching_word_pairs.include?('^')
102
- assert @am.protectable.include?('^')
103
- end
104
-
105
- def test_basic
106
- assert_equal(["cat"], @am.flow("cat"))
107
-
108
- assert_equal(["cat ", @bold_on, "and", @bold_off, " dog"],
109
- @am.flow("cat *and* dog"))
110
-
111
- assert_equal(["cat ", @bold_on, "AND", @bold_off, " dog"],
112
- @am.flow("cat *AND* dog"))
113
-
114
- assert_equal(["cat ", @em_on, "And", @em_off, " dog"],
115
- @am.flow("cat _And_ dog"))
116
-
117
- assert_equal(["cat *and dog*"], @am.flow("cat *and dog*"))
118
-
119
- assert_equal(["*cat and* dog"], @am.flow("*cat and* dog"))
120
-
121
- assert_equal(["cat *and ", @bold_on, "dog", @bold_off],
122
- @am.flow("cat *and *dog*"))
123
-
124
- assert_equal(["cat ", @em_on, "and", @em_off, " dog"],
125
- @am.flow("cat _and_ dog"))
126
-
127
- assert_equal(["cat_and_dog"],
128
- @am.flow("cat_and_dog"))
129
-
130
- assert_equal(["cat ", @tt_on, "and", @tt_off, " dog"],
131
- @am.flow("cat +and+ dog"))
132
-
133
- assert_equal(["cat ", @tt_on, "X::Y", @tt_off, " dog"],
134
- @am.flow("cat +X::Y+ dog"))
135
-
136
- assert_equal(["cat ", @bold_on, "a_b_c", @bold_off, " dog"],
137
- @am.flow("cat *a_b_c* dog"))
138
-
139
- assert_equal(["cat __ dog"],
140
- @am.flow("cat __ dog"))
141
-
142
- assert_equal(["cat ", @em_on, "_", @em_off, " dog"],
143
- @am.flow("cat ___ dog"))
144
-
145
- assert_equal(["cat and ", @em_on, "5", @em_off, " dogs"],
146
- @am.flow("cat and _5_ dogs"))
147
- end
148
-
149
- def test_bold
150
- assert_equal [@bold_on, 'bold', @bold_off],
151
- @am.flow("*bold*")
152
-
153
- assert_equal [@bold_on, 'Bold:', @bold_off],
154
- @am.flow("*Bold:*")
155
-
156
- assert_equal [@bold_on, '\\bold', @bold_off],
157
- @am.flow("*\\bold*")
158
- end
159
-
160
- def test_bold_html_escaped
161
- assert_equal ['cat <b>dog</b>'], @am.flow('cat \<b>dog</b>')
162
- end
163
-
164
- def test_combined
165
- assert_equal(["cat ", @em_on, "and", @em_off, " ", @bold_on, "dog", @bold_off],
166
- @am.flow("cat _and_ *dog*"))
167
-
168
- assert_equal(["cat ", @em_on, "a__nd", @em_off, " ", @bold_on, "dog", @bold_off],
169
- @am.flow("cat _a__nd_ *dog*"))
170
- end
171
-
172
- def test_convert_attrs
173
- str = '+foo+'
174
- attrs = RDoc::Markup::AttrSpan.new str.length
175
-
176
- @am.convert_attrs str, attrs
177
-
178
- assert_equal "\000foo\000", str
179
-
180
- str = '+:foo:+'
181
- attrs = RDoc::Markup::AttrSpan.new str.length
182
-
183
- @am.convert_attrs str, attrs
184
-
185
- assert_equal "\000:foo:\000", str
186
-
187
- str = '+x-y+'
188
- attrs = RDoc::Markup::AttrSpan.new str.length
189
-
190
- @am.convert_attrs str, attrs
191
-
192
- assert_equal "\000x-y\000", str
193
- end
194
-
195
- def test_convert_attrs_ignores_code
196
- assert_equal 'foo <CODE>__send__</CODE> bar', output('foo <code>__send__</code> bar')
197
- end
198
-
199
- def test_convert_attrs_ignores_tt
200
- assert_equal 'foo <CODE>__send__</CODE> bar', output('foo <tt>__send__</tt> bar')
201
- end
202
-
203
- def test_convert_attrs_preserves_double
204
- assert_equal 'foo.__send__ :bar', output('foo.__send__ :bar')
205
- assert_equal 'use __FILE__ to', output('use __FILE__ to')
206
- end
207
-
208
- def test_convert_attrs_does_not_ignore_after_tt
209
- assert_equal 'the <CODE>IF:</CODE><EM>key</EM> directive', output('the <tt>IF:</tt>_key_ directive')
210
- end
211
-
212
- def test_escapes
213
- assert_equal '<CODE>text</CODE>', output('<tt>text</tt>')
214
- assert_equal '<tt>text</tt>', output('\\<tt>text</tt>')
215
- assert_equal '<tt>', output('\\<tt>')
216
- assert_equal '<CODE><tt></CODE>', output('<tt>\\<tt></tt>')
217
- assert_equal '<CODE>\\<tt></CODE>', output('<tt>\\\\<tt></tt>')
218
- assert_equal '<B>text</B>', output('*text*')
219
- assert_equal '*text*', output('\\*text*')
220
- assert_equal '\\', output('\\')
221
- assert_equal '\\text', output('\\text')
222
- assert_equal '\\\\text', output('\\\\text')
223
- assert_equal 'text \\ text', output('text \\ text')
224
-
225
- assert_equal 'and <CODE>\\s</CODE> matches space',
226
- output('and <tt>\\s</tt> matches space')
227
- assert_equal 'use <CODE><tt>text</CODE></tt> for code',
228
- output('use <tt>\\<tt>text</tt></tt> for code')
229
- assert_equal 'use <CODE><tt>text</tt></CODE> for code',
230
- output('use <tt>\\<tt>text\\</tt></tt> for code')
231
- assert_equal 'use <tt><tt>text</tt></tt> for code',
232
- output('use \\<tt>\\<tt>text</tt></tt> for code')
233
- assert_equal 'use <tt><CODE>text</CODE></tt> for code',
234
- output('use \\<tt><tt>text</tt></tt> for code')
235
- assert_equal 'use <CODE>+text+</CODE> for code',
236
- output('use <tt>\\+text+</tt> for code')
237
- assert_equal 'use <tt><CODE>text</CODE></tt> for code',
238
- output('use \\<tt>+text+</tt> for code')
239
- assert_equal 'illegal <tag>not</tag> changed',
240
- output('illegal <tag>not</tag> changed')
241
- assert_equal 'unhandled <p>tag</p> unchanged',
242
- output('unhandled <p>tag</p> unchanged')
243
- end
244
-
245
- def test_html_like_em_bold
246
- assert_equal ["cat ", @em_on, "and ", @em_to_bold, "dog", @bold_off],
247
- @am.flow("cat <i>and </i><b>dog</b>")
248
- end
249
-
250
- def test_html_like_em_bold_SGML
251
- assert_equal ["cat ", @em_on, "and ", @em_to_bold, "dog", @bold_off],
252
- @am.flow("cat <i>and <b></i>dog</b>")
253
- end
254
-
255
- def test_html_like_em_bold_nested_1
256
- assert_equal(["cat ", @bold_em_on, "and", @bold_em_off, " dog"],
257
- @am.flow("cat <i><b>and</b></i> dog"))
258
- end
259
-
260
- def test_html_like_em_bold_nested_2
261
- assert_equal ["cat ", @em_on, "and ", @em_then_bold, "dog", @bold_em_off],
262
- @am.flow("cat <i>and <b>dog</b></i>")
263
- end
264
-
265
- def test_html_like_em_bold_nested_mixed_case
266
- assert_equal ["cat ", @em_on, "and ", @em_then_bold, "dog", @bold_em_off],
267
- @am.flow("cat <i>and <B>dog</B></I>")
268
- end
269
-
270
- def test_html_like_em_bold_mixed_case
271
- assert_equal ["cat ", @em_on, "and", @em_off, " ", @bold_on, "dog", @bold_off],
272
- @am.flow("cat <i>and</i> <B>dog</b>")
273
- end
274
-
275
- def test_html_like_teletype
276
- assert_equal ["cat ", @tt_on, "dog", @tt_off],
277
- @am.flow("cat <tt>dog</Tt>")
278
- end
279
-
280
- def test_html_like_teletype_em_bold_SGML
281
- assert_equal [@tt_on, "cat", @tt_off, " ", @em_on, "and ", @em_to_bold, "dog", @bold_off],
282
- @am.flow("<tt>cat</tt> <i>and <b></i>dog</b>")
283
- end
284
-
285
- def test_initial_html
286
- html_tags = @am.html_tags
287
- assert html_tags.is_a?(Hash)
288
- assert_equal(5, html_tags.size)
289
- end
290
-
291
- def test_initial_word_pairs
292
- word_pairs = @am.matching_word_pairs
293
- assert word_pairs.is_a?(Hash)
294
- assert_equal(3, word_pairs.size)
295
- end
296
-
297
- def test_mask_protected_sequence
298
- def @am.str() @str end
299
- def @am.str=(str) @str = str end
300
-
301
- @am.str = '<code>foo</code>'
302
- @am.mask_protected_sequences
303
-
304
- assert_equal "<code>foo</code>", @am.str
305
-
306
- @am.str = '<code>foo\\</code>'
307
- @am.mask_protected_sequences
308
-
309
- assert_equal "<code>foo<\x04/code>", @am.str, 'escaped close'
310
-
311
- @am.str = '<code>foo\\\\</code>'
312
- @am.mask_protected_sequences
313
-
314
- assert_equal "<code>foo\\</code>", @am.str, 'escaped backslash'
315
- end
316
-
317
- def test_protect
318
- assert_equal(['cat \\ dog'],
319
- @am.flow('cat \\ dog'))
320
-
321
- assert_equal(["cat <tt>dog</Tt>"],
322
- @am.flow("cat \\<tt>dog</Tt>"))
323
-
324
- assert_equal(["cat ", @em_on, "and", @em_off, " <B>dog</b>"],
325
- @am.flow("cat <i>and</i> \\<B>dog</b>"))
326
-
327
- assert_equal(["*word* or <b>text</b>"],
328
- @am.flow("\\*word* or \\<b>text</b>"))
329
-
330
- assert_equal(["_cat_", @em_on, "dog", @em_off],
331
- @am.flow("\\_cat_<i>dog</i>"))
332
- end
333
-
334
- def test_special
335
- @am.add_special(RDoc::CrossReference::CROSSREF_REGEXP, :CROSSREF)
336
-
337
- #
338
- # The apostrophes in "cats'" and "dogs'" suppress the flagging of these
339
- # words as potential cross-references, which is necessary for the unit
340
- # tests. Unfortunately, the markup engine right now does not actually
341
- # check whether a cross-reference is valid before flagging it.
342
- #
343
- assert_equal(["cats'"], @am.flow("cats'"))
344
-
345
- assert_equal(["cats' ", crossref("#fred"), " dogs'"].flatten,
346
- @am.flow("cats' #fred dogs'"))
347
-
348
- assert_equal([crossref("#fred"), " dogs'"].flatten,
349
- @am.flow("#fred dogs'"))
350
-
351
- assert_equal(["cats' ", crossref("#fred")].flatten, @am.flow("cats' #fred"))
352
- end
353
-
354
- def test_tt_html
355
- assert_equal [@tt_on, '"\n"', @tt_off],
356
- @am.flow('<tt>"\n"</tt>')
357
- end
358
-
359
- def output str
360
- @formatter.convert_flow @am.flow str
361
- end
362
-
363
- end
364
-
@@ -1,39 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocMarkupAttributes < RDoc::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @as = RDoc::Markup::Attributes.new
9
- end
10
-
11
- def test_bitmap_for
12
- assert_equal 2, @as.bitmap_for('two')
13
- assert_equal 2, @as.bitmap_for('two')
14
- assert_equal 4, @as.bitmap_for('three')
15
- end
16
-
17
- def test_as_string
18
- @as.bitmap_for 'two'
19
- @as.bitmap_for 'three'
20
-
21
- assert_equal 'none', @as.as_string(0)
22
- assert_equal '_SPECIAL_', @as.as_string(1)
23
- assert_equal 'two', @as.as_string(2)
24
- assert_equal '_SPECIAL_,two', @as.as_string(3)
25
- end
26
-
27
- def test_each_name_of
28
- @as.bitmap_for 'two'
29
- @as.bitmap_for 'three'
30
-
31
- assert_equal %w[], @as.each_name_of(0).to_a
32
- assert_equal %w[], @as.each_name_of(1).to_a
33
- assert_equal %w[two], @as.each_name_of(2).to_a
34
- assert_equal %w[three], @as.each_name_of(4).to_a
35
- assert_equal %w[two three], @as.each_name_of(6).to_a
36
- end
37
-
38
- end
39
-
@@ -1,207 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocMarkupDocument < RDoc::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @d = @RM::Document.new
9
- end
10
-
11
- def test_append
12
- @d << @RM::Paragraph.new('hi')
13
-
14
- expected = @RM::Document.new @RM::Paragraph.new('hi')
15
-
16
- assert_equal expected, @d
17
- end
18
-
19
- def test_append_document
20
- @d << @RM::Document.new
21
-
22
- assert_empty @d
23
-
24
- @d << @RM::Document.new(@RM::Paragraph.new('hi'))
25
-
26
- expected = @RM::Document.new @RM::Paragraph.new('hi'), @RM::BlankLine.new
27
-
28
- assert_equal expected, @d
29
- end
30
-
31
- def test_append_string
32
- @d << ''
33
-
34
- assert_empty @d
35
-
36
- assert_raises ArgumentError do
37
- @d << 'hi'
38
- end
39
- end
40
-
41
- def test_concat
42
- @d.concat [@RM::BlankLine.new, @RM::BlankLine.new]
43
-
44
- refute_empty @d
45
- end
46
-
47
- def test_each
48
- a = @RM::Document.new
49
- b = @RM::Document.new(@RM::Paragraph.new('hi'))
50
-
51
- @d.push a, b
52
-
53
- assert_equal [a, b], @d.map { |sub_doc| sub_doc }
54
- end
55
-
56
- def test_empty_eh
57
- assert_empty @d
58
-
59
- @d << @RM::BlankLine.new
60
-
61
- refute_empty @d
62
- end
63
-
64
- def test_empty_eh_document
65
- d = @RM::Document.new @d
66
-
67
- assert_empty d
68
- end
69
-
70
- def test_equals2
71
- d2 = @RM::Document.new
72
-
73
- assert_equal @d, d2
74
-
75
- d2 << @RM::BlankLine.new
76
-
77
- refute_equal @d, d2
78
- end
79
-
80
- def test_equals2_file
81
- d2 = @RM::Document.new
82
- d2.file = 'file.rb'
83
-
84
- refute_equal @d, d2
85
-
86
- @d.file = 'file.rb'
87
-
88
- assert_equal @d, d2
89
- end
90
-
91
- def test_file_equals
92
- @d.file = 'file.rb'
93
-
94
- assert_equal 'file.rb', @d.file
95
- end
96
-
97
- def test_file_equals_top_level
98
- @d.file = @store.add_file 'file.rb'
99
-
100
- assert_equal 'file.rb', @d.file
101
- end
102
-
103
- def test_lt2
104
- @d << @RM::BlankLine.new
105
-
106
- refute_empty @d
107
- end
108
-
109
- def test_merge
110
- original = @RM::Document.new @RM::Paragraph.new 'original'
111
- original.file = 'file.rb'
112
- root = @RM::Document.new original
113
-
114
- replace = @RM::Document.new @RM::Paragraph.new 'replace'
115
- replace.file = 'file.rb'
116
-
117
- other = @RM::Document.new replace
118
-
119
- result = root.merge other
120
-
121
- inner = @RM::Document.new @RM::Paragraph.new 'replace'
122
- inner.file = 'file.rb'
123
- expected = @RM::Document.new inner
124
-
125
- assert_equal expected, result
126
- end
127
-
128
- def test_merge_add
129
- original = @RM::Document.new @RM::Paragraph.new 'original'
130
- original.file = 'file.rb'
131
- root = @RM::Document.new original
132
-
133
- addition = @RM::Document.new @RM::Paragraph.new 'addition'
134
- addition.file = 'other.rb'
135
-
136
- other = @RM::Document.new addition
137
-
138
- result = root.merge other
139
-
140
- expected = @RM::Document.new original, addition
141
-
142
- assert_equal expected, result
143
- end
144
-
145
- def test_merge_empty
146
- original = @RM::Document.new
147
- root = @RM::Document.new original
148
-
149
- replace = @RM::Document.new @RM::Paragraph.new 'replace'
150
- replace.file = 'file.rb'
151
-
152
- other = @RM::Document.new replace
153
-
154
- result = root.merge other
155
-
156
- inner = @RM::Document.new @RM::Paragraph.new 'replace'
157
- inner.file = 'file.rb'
158
- expected = @RM::Document.new inner
159
-
160
- assert_equal expected, result
161
- end
162
-
163
- def test_push
164
- @d.push @RM::BlankLine.new, @RM::BlankLine.new
165
-
166
- refute_empty @d
167
- end
168
-
169
- def test_table_of_contents
170
- doc = @RM::Document.new(
171
- @RM::Heading.new(1, 'A'),
172
- @RM::Paragraph.new('B'),
173
- @RM::Heading.new(2, 'C'),
174
- @RM::Paragraph.new('D'),
175
- @RM::Heading.new(1, 'E'),
176
- @RM::Paragraph.new('F'))
177
-
178
- expected = [
179
- @RM::Heading.new(1, 'A'),
180
- @RM::Heading.new(2, 'C'),
181
- @RM::Heading.new(1, 'E'),
182
- ]
183
-
184
- assert_equal expected, doc.table_of_contents
185
- end
186
-
187
- def test_table_of_contents_omit_headings_below
188
- document = doc(
189
- head(1, 'A'),
190
- para('B'),
191
- head(2, 'C'),
192
- para('D'),
193
- head(1, 'E'),
194
- para('F'))
195
-
196
- document.omit_headings_below = 1
197
-
198
- expected = [
199
- head(1, 'A'),
200
- head(1, 'E'),
201
- ]
202
-
203
- assert_equal expected, document.table_of_contents
204
- end
205
-
206
- end
207
-