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,115 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocParserSimple < RDoc::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @tempfile = Tempfile.new self.class.name
9
- filename = @tempfile.path
10
-
11
- @top_level = @store.add_file filename
12
- @fn = filename
13
- @options = RDoc::Options.new
14
- @stats = RDoc::Stats.new @store, 0
15
- end
16
-
17
- def teardown
18
- super
19
-
20
- @tempfile.close!
21
- end
22
-
23
- def test_initialize_metadata
24
- parser = util_parser ":unhandled: \n"
25
-
26
- assert_includes @top_level.metadata, 'unhandled'
27
-
28
- assert_equal ":unhandled: \n", parser.content
29
- end
30
-
31
- def test_remove_coding_comment
32
- parser = util_parser <<-TEXT
33
- # -*- mode: rdoc; coding: utf-8; fill-column: 74; -*-
34
-
35
- Regular expressions (<i>regexp</i>s) are patterns which describe the
36
- contents of a string.
37
- TEXT
38
-
39
- parser.scan
40
-
41
- expected = <<-TEXT.strip
42
- Regular expressions (<i>regexp</i>s) are patterns which describe the
43
- contents of a string.
44
- TEXT
45
-
46
- assert_equal expected, @top_level.comment.text
47
- end
48
-
49
- # RDoc stops processing comments if it finds a comment line CONTAINING
50
- # '<tt>#--</tt>'. This can be used to separate external from internal
51
- # comments, or to stop a comment being associated with a method,
52
- # class, or module. Commenting CAN be turned back on with
53
- # a line that STARTS '<tt>#++</tt>'.
54
- #
55
- # I've seen guys that comment their code like this:
56
- # # This method....
57
- # #-----------------
58
- # def method
59
- #
60
- # => either we do it only in ruby code, or we require the leading #
61
- # (to avoid conflict with rules).
62
- #
63
- # TODO: require the leading #, to provide the feature in simple text files.
64
- # Note: in ruby & C code, we require '#--' & '#++' or '*--' & '*++',
65
- # to allow rules:
66
- #
67
- # # this is a comment
68
- # #---
69
- # # private text
70
- # #+++
71
- # # this is a rule:
72
- # # ---
73
-
74
- def test_remove_private_comments
75
- parser = util_parser "foo\n\n--\nbar\n++\n\nbaz\n"
76
-
77
- parser.scan
78
-
79
- expected = "foo\n\n\nbaz"
80
-
81
- assert_equal expected, @top_level.comment.text
82
- end
83
-
84
- def test_remove_private_comments_rule
85
- parser = util_parser "foo\n---\nbar"
86
-
87
- parser.scan
88
-
89
- expected = "foo\n---\nbar"
90
-
91
- assert_equal expected, @top_level.comment.text
92
- end
93
-
94
- def test_remove_private_comments_star
95
- parser = util_parser "* foo\n* bar\n"
96
-
97
- parser.scan
98
-
99
- assert_equal "* foo\n* bar", @top_level.comment.text
100
- end
101
-
102
- def test_scan
103
- parser = util_parser 'it *really* works'
104
-
105
- parser.scan
106
-
107
- assert_equal 'it *really* works', @top_level.comment.text
108
- end
109
-
110
- def util_parser(content)
111
- RDoc::Parser::Simple.new @top_level, @fn, content, @options, @stats
112
- end
113
-
114
- end
115
-
@@ -1,30 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocRd < RDoc::TestCase
4
-
5
- def test_class_parse
6
- expected =
7
- @RM::Document.new(
8
- @RM::Paragraph.new('hello'))
9
-
10
- assert_equal expected, RDoc::RD.parse("hello")
11
- end
12
-
13
- def test_class_parse_begin_end
14
- expected =
15
- @RM::Document.new(
16
- @RM::Paragraph.new('hello'))
17
-
18
- assert_equal expected, RDoc::RD.parse("=begin\nhello\n=end\n")
19
- end
20
-
21
- def test_class_parse_newline
22
- expected =
23
- @RM::Document.new(
24
- @RM::Paragraph.new('hello'))
25
-
26
- assert_equal expected, RDoc::RD.parse("hello\n")
27
- end
28
-
29
- end
30
-
@@ -1,535 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocRdBlockParser < RDoc::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @block_parser = RDoc::RD::BlockParser.new
9
- end
10
-
11
- def test_add_footnote
12
- index = @block_parser.add_footnote 'context'
13
-
14
- assert_equal 1, index
15
-
16
- expected = [
17
- para('{^1}[rdoc-label:footmark-1:foottext-1]', ' ', 'context'),
18
- blank_line,
19
- ]
20
-
21
- assert_equal expected, @block_parser.footnotes
22
-
23
- index = @block_parser.add_footnote 'other'
24
-
25
- assert_equal 2, index
26
- end
27
-
28
- def test_parse_desclist
29
- list = <<-LIST
30
- :one
31
- desc one
32
- :two
33
- desc two
34
- LIST
35
-
36
- expected =
37
- doc(
38
- list(:NOTE,
39
- item("one", para("desc one")),
40
- item("two", para("desc two"))))
41
-
42
- assert_equal expected, parse(list)
43
- end
44
-
45
- def test_parse_enumlist
46
- list = <<-LIST
47
- (1) one
48
- (1) two
49
- LIST
50
-
51
- expected =
52
- doc(
53
- list(:NUMBER,
54
- item(nil, para("one")),
55
- item(nil, para("two"))))
56
-
57
- assert_equal expected, parse(list)
58
- end
59
-
60
- def test_parse_enumlist_paragraphs
61
- list = <<-LIST
62
- (1) one
63
-
64
- two
65
- LIST
66
-
67
- expected =
68
- doc(
69
- list(:NUMBER,
70
- item(nil,
71
- para("one"),
72
- para("two"))))
73
-
74
- assert_equal expected, parse(list)
75
- end
76
-
77
- def test_parse_enumlist_multiline
78
- list = <<-LIST
79
- (1) one
80
- two
81
- LIST
82
-
83
- contents = "one\n two" # 1.8 vs 1.9
84
-
85
- expected =
86
- doc(
87
- list(:NUMBER,
88
- item(nil, para(*contents))))
89
-
90
- assert_equal expected, parse(list)
91
- end
92
-
93
- def test_parse_enumlist_verbatim
94
- list = <<-LIST
95
- (1) item
96
- verbatim
97
- LIST
98
-
99
- expected =
100
- doc(
101
- list(:NUMBER,
102
- item(nil,
103
- para("item"),
104
- verb("verbatim\n"))))
105
-
106
- assert_equal expected, parse(list)
107
- end
108
-
109
- def test_parse_enumlist_verbatim_continue
110
- list = <<-LIST
111
- (1) one
112
- verbatim
113
- two
114
- LIST
115
-
116
- expected =
117
- doc(
118
- list(:NUMBER,
119
- item(nil,
120
- para("one"),
121
- verb("verbatim\n"),
122
- para("two"))))
123
-
124
- assert_equal expected, parse(list)
125
- end
126
-
127
- def test_parse_footnote
128
- expected =
129
- doc(
130
- para("{*1}[rdoc-label:foottext-1:footmark-1]"),
131
- rule(1),
132
- para("{^1}[rdoc-label:footmark-1:foottext-1]", " ", "text"),
133
- blank_line)
134
-
135
- assert_equal expected, parse("((-text-))")
136
- end
137
-
138
- def test_parse_include
139
- @block_parser.include_path = [Dir.tmpdir]
140
-
141
- expected = doc(@RM::Include.new("parse_include", [Dir.tmpdir]))
142
-
143
- assert_equal expected, parse("<<< parse_include")
144
- end
145
-
146
- def test_parse_include_subtree
147
- @block_parser.include_path = [Dir.tmpdir]
148
-
149
- expected =
150
- doc(
151
- blank_line,
152
- para("include <em>worked</em>"),
153
- blank_line,
154
- blank_line)
155
-
156
- tf = Tempfile.open %w[parse_include .rd] do |io|
157
- io.puts "=begin\ninclude ((*worked*))\n=end"
158
- io.flush
159
-
160
- str = <<-STR
161
- <<< #{File.basename io.path}
162
- STR
163
-
164
- assert_equal expected, parse(str)
165
- io
166
- end
167
- tf.close! if tf.respond_to? :close!
168
- end
169
-
170
- def test_parse_heading
171
- assert_equal doc(head(1, "H")), parse("= H")
172
- assert_equal doc(head(2, "H")), parse("== H")
173
- assert_equal doc(head(3, "H")), parse("=== H")
174
- assert_equal doc(head(4, "H")), parse("==== H")
175
- assert_equal doc(head(5, "H")), parse("+ H")
176
- assert_equal doc(head(6, "H")), parse("++ H")
177
- end
178
-
179
- def test_parse_itemlist
180
- list = <<-LIST
181
- * one
182
- * two
183
- LIST
184
-
185
- expected =
186
- doc(
187
- list(:BULLET,
188
- item(nil, para("one")),
189
- item(nil, para("two"))))
190
-
191
- assert_equal expected, parse(list)
192
- end
193
-
194
- def test_parse_itemlist_multiline
195
- list = <<-LIST
196
- * one
197
- two
198
- LIST
199
-
200
- contents = "one\n two" # 1.8 vs 1.9
201
-
202
- expected =
203
- doc(
204
- list(:BULLET,
205
- item(nil, para(*contents))))
206
-
207
- assert_equal expected, parse(list)
208
- end
209
-
210
- def test_parse_itemlist_nest
211
- list = <<-LIST
212
- * one
213
- * inner
214
- * two
215
- LIST
216
-
217
- expected =
218
- doc(
219
- list(:BULLET,
220
- item(nil,
221
- para("one"),
222
- list(:BULLET,
223
- item(nil, para("inner")))),
224
- item(nil,
225
- para("two"))))
226
-
227
- assert_equal expected, parse(list)
228
- end
229
-
230
- def test_parse_itemlist_paragraphs
231
- list = <<-LIST
232
- * one
233
-
234
- two
235
- LIST
236
-
237
- expected =
238
- doc(
239
- list(:BULLET,
240
- item(nil,
241
- para("one"),
242
- para("two"))))
243
-
244
- assert_equal expected, parse(list)
245
- end
246
-
247
- def test_parse_itemlist_verbatim
248
- list = <<-LIST
249
- * item
250
- verbatim
251
- LIST
252
-
253
- expected =
254
- doc(
255
- list(:BULLET,
256
- item(nil,
257
- para("item"),
258
- verb("verbatim\n"))))
259
-
260
- assert_equal expected, parse(list)
261
- end
262
-
263
- def test_parse_itemlist_verbatim_continue
264
- list = <<-LIST
265
- * one
266
- verbatim
267
- two
268
- LIST
269
-
270
- expected =
271
- doc(
272
- list(:BULLET,
273
- item(nil,
274
- para("one"),
275
- verb("verbatim\n"),
276
- para("two"))))
277
-
278
- assert_equal expected, parse(list)
279
- end
280
-
281
- def test_parse_lists
282
- list = <<-LIST
283
- (1) one
284
- (1) two
285
- * three
286
- * four
287
- (1) five
288
- (1) six
289
- LIST
290
-
291
- expected =
292
- doc(
293
- list(:NUMBER,
294
- item(nil, para("one")),
295
- item(nil, para("two"))),
296
- list(:BULLET,
297
- item(nil, para("three")),
298
- item(nil, para("four"))),
299
- list(:NUMBER,
300
- item(nil, para("five")),
301
- item(nil, para("six"))))
302
-
303
- assert_equal expected, parse(list)
304
- end
305
-
306
- def test_parse_lists_nest
307
- list = <<-LIST
308
- (1) one
309
- (1) two
310
- * three
311
- * four
312
- (1) five
313
- (1) six
314
- LIST
315
-
316
- expected =
317
- doc(
318
- list(:NUMBER,
319
- item(nil, para("one")),
320
- item(nil,
321
- para("two"),
322
- list(:BULLET,
323
- item(nil, para("three")),
324
- item(nil, para("four")))),
325
- item(nil, para("five")),
326
- item(nil, para("six"))))
327
-
328
- assert_equal expected, parse(list)
329
- end
330
-
331
- def test_parse_lists_nest_verbatim
332
- list = <<-LIST
333
- (1) one
334
- (1) two
335
- * three
336
- * four
337
- verbatim
338
- (1) five
339
- (1) six
340
- LIST
341
-
342
- expected =
343
- doc(
344
- list(:NUMBER,
345
- item(nil, para("one")),
346
- item(nil,
347
- para("two"),
348
- list(:BULLET,
349
- item(nil, para("three")),
350
- item(nil, para("four"))),
351
- verb("verbatim\n")),
352
- item(nil, para("five")),
353
- item(nil, para("six"))))
354
-
355
- assert_equal expected, parse(list)
356
- end
357
-
358
- def test_parse_lists_nest_verbatim2
359
- list = <<-LIST
360
- (1) one
361
- (1) two
362
- * three
363
- * four
364
- verbatim
365
- (1) five
366
- (1) six
367
- LIST
368
-
369
- expected =
370
- doc(
371
- list(:NUMBER,
372
- item(nil, para("one")),
373
- item(nil,
374
- para("two"),
375
- list(:BULLET,
376
- item(nil, para("three")),
377
- item(nil, para("four"))),
378
- verb("verbatim\n")),
379
- item(nil, para("five")),
380
- item(nil, para("six"))))
381
-
382
- assert_equal expected, parse(list)
383
- end
384
-
385
- def test_parse_methodlist
386
- list = <<-LIST
387
- --- Array#each {|i| ... }
388
- yield block for each item.
389
- --- Array#index(val)
390
- return index of first item which equals with val. if it hasn't
391
- same item, return nil.
392
- LIST
393
-
394
- expected =
395
- doc(
396
- list(:LABEL,
397
- item(
398
- "<tt>Array#each {|i| ... }</tt>",
399
- para("yield block for each item.")),
400
- item(
401
- "<tt>Array#index(val)</tt>",
402
- para("return index of first item which equals with val. if it hasn't same item, return nil."))))
403
-
404
- assert_equal expected, parse(list)
405
- end
406
-
407
- def test_parse_methodlist_empty
408
- list = <<-LIST
409
- --- A#b
410
-
411
- LIST
412
-
413
- expected =
414
- doc(
415
- list(:LABEL,
416
- item("<tt>A#b</tt>")))
417
-
418
- assert_equal expected, parse(list)
419
- end
420
-
421
- def test_parse_methodlist_paragraph
422
- list = <<-LIST
423
- --- A#b
424
-
425
- one
426
- LIST
427
-
428
- expected =
429
- doc(
430
- list(:LABEL,
431
- item(
432
- "<tt>A#b</tt>",
433
- para("one"))))
434
-
435
- assert_equal expected, parse(list)
436
- end
437
-
438
- def test_parse_methodlist_paragraph2
439
- list = <<-LIST.chomp
440
- --- A#b
441
-
442
- one
443
- two
444
- LIST
445
-
446
- expected =
447
- doc(
448
- list(:LABEL,
449
- item(
450
- "<tt>A#b</tt>",
451
- para("one"))),
452
- para("two"))
453
-
454
- assert_equal expected, parse(list)
455
- end
456
-
457
- def test_parse_methodlist_paragraph_verbatim
458
- list = <<-LIST.chomp
459
- --- A#b
460
-
461
- text
462
- verbatim
463
- LIST
464
-
465
- expected =
466
- doc(
467
- list(:LABEL,
468
- item(
469
- "<tt>A#b</tt>",
470
- para("text"),
471
- verb("verbatim\n"))))
472
-
473
- assert_equal expected, parse(list)
474
- end
475
-
476
- def test_parse_verbatim
477
- assert_equal doc(verb("verbatim\n")), parse(" verbatim")
478
- end
479
-
480
- def test_parse_verbatim_blankline
481
- expected = doc(verb("one\n", "\n", "two\n"))
482
-
483
- verbatim = <<-VERBATIM
484
- one
485
-
486
- two
487
- VERBATIM
488
-
489
- assert_equal expected, parse(verbatim)
490
- end
491
-
492
- def test_parse_verbatim_indent
493
- expected = doc(verb("one\n", " two\n"))
494
-
495
- verbatim = <<-VERBATIM
496
- one
497
- two
498
- VERBATIM
499
-
500
- assert_equal expected, parse(verbatim)
501
- end
502
-
503
- def test_parse_verbatim_multi
504
- expected = doc(verb("one\n", "two\n"))
505
-
506
- verbatim = <<-VERBATIM
507
- one
508
- two
509
- VERBATIM
510
-
511
- assert_equal expected, parse(verbatim)
512
- end
513
-
514
- def test_parse_textblock
515
- assert_equal doc(para("text")), parse("text")
516
- end
517
-
518
- def test_parse_textblock_multi
519
- expected = doc(para("one two"))
520
-
521
- assert_equal expected, parse("one\ntwo")
522
- end
523
-
524
- def parse text
525
- text = ["=begin", text, "=end"].join "\n"
526
-
527
- doc = @block_parser.parse text.lines.to_a
528
-
529
- assert_equal blank_line, doc.parts.shift, "=begin blankline"
530
- assert_equal blank_line, doc.parts.pop, "=end blankline"
531
-
532
- doc
533
- end
534
-
535
- end