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,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
-