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,94 +0,0 @@
1
- require File.expand_path '../xref_test_case', __FILE__
2
-
3
- class TestRDocExtend < XrefTestCase
4
-
5
- def setup
6
- super
7
-
8
- @ext = RDoc::Extend.new 'M1', 'comment'
9
- @ext.parent = @m1
10
- @ext.store = @store
11
- end
12
-
13
- def test_module
14
- assert_equal @m1, @ext.module
15
- assert_equal 'Unknown', RDoc::Extend.new('Unknown', 'comment').module
16
- end
17
-
18
- def test_module_extended
19
- m1 = @xref_data.add_module RDoc::NormalModule, 'Mod1'
20
- m1.add_module RDoc::NormalModule, 'Mod3'
21
- m1_m2 = m1.add_module RDoc::NormalModule, 'Mod2'
22
- m1_m2_m3 = m1_m2.add_module RDoc::NormalModule, 'Mod3'
23
- m1_m2_m3.add_module RDoc::NormalModule, 'Mod4'
24
- m1_m2.add_module RDoc::NormalModule, 'Mod4'
25
- m1_m2_k0 = m1_m2.add_class RDoc::NormalClass, 'Klass0'
26
- m1_m2_k0_m4 = m1_m2_k0.add_module RDoc::NormalModule, 'Mod4'
27
- m1_m2_k0_m4.add_module RDoc::NormalModule, 'Mod6'
28
- m1_m2_k0.add_module RDoc::NormalModule, 'Mod5'
29
-
30
- e0_m4 = RDoc::Extend.new 'Mod4', nil
31
- e0_m5 = RDoc::Extend.new 'Mod5', nil
32
- e0_m6 = RDoc::Extend.new 'Mod6', nil
33
- e0_m1 = RDoc::Extend.new 'Mod1', nil
34
- e0_m2 = RDoc::Extend.new 'Mod2', nil
35
- e0_m3 = RDoc::Extend.new 'Mod3', nil
36
-
37
- m1_m2_k0.add_extend e0_m4
38
- m1_m2_k0.add_extend e0_m5
39
- m1_m2_k0.add_extend e0_m6
40
- m1_m2_k0.add_extend e0_m1
41
- m1_m2_k0.add_extend e0_m2
42
- m1_m2_k0.add_extend e0_m3
43
-
44
- assert_equal [e0_m4, e0_m5, e0_m6, e0_m1, e0_m2, e0_m3], m1_m2_k0.extends
45
- assert_equal ['Object'], m1_m2_k0.ancestors
46
-
47
- m1_k1 = m1.add_class RDoc::NormalClass, 'Klass1'
48
-
49
- e1_m1 = RDoc::Extend.new 'Mod1', nil
50
- e1_m2 = RDoc::Extend.new 'Mod2', nil
51
- e1_m3 = RDoc::Extend.new 'Mod3', nil
52
- e1_m4 = RDoc::Extend.new 'Mod4', nil
53
- e1_k0_m4 = RDoc::Extend.new 'Klass0::Mod4', nil
54
-
55
- m1_k1.add_extend e1_m1
56
- m1_k1.add_extend e1_m2
57
- m1_k1.add_extend e1_m3
58
- m1_k1.add_extend e1_m4
59
- m1_k1.add_extend e1_k0_m4
60
-
61
- assert_equal [e1_m1, e1_m2, e1_m3, e1_m4, e1_k0_m4], m1_k1.extends
62
- assert_equal ['Object'], m1_k1.ancestors
63
-
64
- m1_k2 = m1.add_class RDoc::NormalClass, 'Klass2'
65
-
66
- e2_m1 = RDoc::Extend.new 'Mod1', nil
67
- e2_m2 = RDoc::Extend.new 'Mod2', nil
68
- e2_m3 = RDoc::Extend.new 'Mod3', nil
69
- e2_k0_m4 = RDoc::Extend.new 'Klass0::Mod4', nil
70
-
71
- m1_k2.add_extend e2_m1
72
- m1_k2.add_extend e2_m3
73
- m1_k2.add_extend e2_m2
74
- m1_k2.add_extend e2_k0_m4
75
-
76
- assert_equal [e2_m1, e2_m3, e2_m2, e2_k0_m4], m1_k2.extends
77
- assert_equal ['Object'], m1_k2.ancestors
78
-
79
- m1_k3 = m1.add_class RDoc::NormalClass, 'Klass3'
80
-
81
- e3_m1 = RDoc::Extend.new 'Mod1', nil
82
- e3_m2 = RDoc::Extend.new 'Mod2', nil
83
- e3_m4 = RDoc::Extend.new 'Mod4', nil
84
-
85
- m1_k3.add_extend e3_m1
86
- m1_k3.add_extend e3_m2
87
- m1_k3.add_extend e3_m4
88
-
89
- assert_equal [e3_m1, e3_m2, e3_m4], m1_k3.extends
90
- assert_equal ['Object'], m1_k3.ancestors
91
- end
92
-
93
- end
94
-
@@ -1,229 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocGeneratorDarkfish < RDoc::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @lib_dir = "#{@pwd}/lib"
9
- $LOAD_PATH.unshift @lib_dir # ensure we load from this RDoc
10
-
11
- @options = RDoc::Options.new
12
- @options.option_parser = OptionParser.new
13
-
14
- @tmpdir = File.join Dir.tmpdir, "test_rdoc_generator_darkfish_#{$$}"
15
- FileUtils.mkdir_p @tmpdir
16
- Dir.chdir @tmpdir
17
- @options.op_dir = @tmpdir
18
- @options.generator = RDoc::Generator::Darkfish
19
-
20
- $LOAD_PATH.each do |path|
21
- darkfish_dir = File.join path, 'rdoc/generator/template/darkfish/'
22
- next unless File.directory? darkfish_dir
23
- @options.template_dir = darkfish_dir
24
- break
25
- end
26
-
27
- @rdoc.options = @options
28
-
29
- @g = @options.generator.new @store, @options
30
- @rdoc.generator = @g
31
-
32
- @top_level = @store.add_file 'file.rb'
33
- @top_level.parser = RDoc::Parser::Ruby
34
- @klass = @top_level.add_class RDoc::NormalClass, 'Klass'
35
-
36
- @alias_constant = RDoc::Constant.new 'A', nil, ''
37
- @alias_constant.record_location @top_level
38
-
39
- @top_level.add_constant @alias_constant
40
-
41
- @klass.add_module_alias @klass, 'A', @top_level
42
-
43
- @meth = RDoc::AnyMethod.new nil, 'method'
44
- @meth_bang = RDoc::AnyMethod.new nil, 'method!'
45
- @attr = RDoc::Attr.new nil, 'attr', 'RW', ''
46
-
47
- @klass.add_method @meth
48
- @klass.add_method @meth_bang
49
- @klass.add_attribute @attr
50
-
51
- @ignored = @top_level.add_class RDoc::NormalClass, 'Ignored'
52
- @ignored.ignore
53
-
54
- @store.complete :private
55
-
56
- @object = @store.find_class_or_module 'Object'
57
- @klass_alias = @store.find_class_or_module 'Klass::A'
58
- end
59
-
60
- def teardown
61
- super
62
-
63
- $LOAD_PATH.shift
64
- Dir.chdir @pwd
65
- FileUtils.rm_rf @tmpdir
66
- end
67
-
68
- def test_generate
69
- top_level = @store.add_file 'file.rb'
70
- top_level.add_class @klass.class, @klass.name
71
-
72
- @g.generate
73
-
74
- assert_file 'index.html'
75
- assert_file 'Object.html'
76
- assert_file 'table_of_contents.html'
77
- assert_file 'js/search_index.js'
78
-
79
- assert_hard_link 'css/rdoc.css'
80
- assert_hard_link 'css/fonts.css'
81
-
82
- assert_hard_link 'fonts/SourceCodePro-Bold.ttf'
83
- assert_hard_link 'fonts/SourceCodePro-Regular.ttf'
84
-
85
- encoding = if Object.const_defined? :Encoding then
86
- Regexp.escape Encoding::UTF_8.name
87
- else
88
- Regexp.escape 'UTF-8'
89
- end
90
-
91
- assert_match %r%<meta charset="#{encoding}">%, File.read('index.html')
92
- assert_match %r%<meta charset="#{encoding}">%, File.read('Object.html')
93
-
94
- refute_match(/Ignored/, File.read('index.html'))
95
- end
96
-
97
- def test_generate_dry_run
98
- @g.dry_run = true
99
- top_level = @store.add_file 'file.rb'
100
- top_level.add_class @klass.class, @klass.name
101
-
102
- @g.generate
103
-
104
- refute_file 'index.html'
105
- refute_file 'Object.html'
106
- end
107
-
108
- def test_generate_static
109
- FileUtils.mkdir_p 'dir/images'
110
- FileUtils.touch 'dir/images/image.png'
111
- FileUtils.mkdir_p 'file'
112
- FileUtils.touch 'file/file.txt'
113
-
114
- @options.static_path = [
115
- File.expand_path('dir'),
116
- File.expand_path('file/file.txt'),
117
- ]
118
-
119
- @g.generate
120
-
121
- assert_file 'images/image.png'
122
- assert_file 'file.txt'
123
- end
124
-
125
- def test_generate_static_dry_run
126
- FileUtils.mkdir 'static'
127
- FileUtils.touch 'static/image.png'
128
-
129
- @options.static_path = [File.expand_path('static')]
130
- @g.dry_run = true
131
-
132
- @g.generate
133
-
134
- refute_file 'image.png'
135
- end
136
-
137
- def test_install_rdoc_static_file
138
- src = Pathname(__FILE__)
139
- dst = File.join @tmpdir, File.basename(src)
140
- options = {}
141
-
142
- @g.install_rdoc_static_file src, dst, options
143
-
144
- assert_file dst
145
-
146
- begin
147
- assert_hard_link dst
148
- rescue MiniTest::Assertion
149
- return # hard links are not supported, no further tests needed
150
- end
151
-
152
- @g.install_rdoc_static_file src, dst, options
153
-
154
- assert_hard_link dst
155
- end
156
-
157
- def test_install_rdoc_static_file_missing
158
- src = Pathname(__FILE__) + 'nonexistent'
159
- dst = File.join @tmpdir, File.basename(src)
160
- options = {}
161
-
162
- @g.install_rdoc_static_file src, dst, options
163
-
164
- refute_file dst
165
- end
166
-
167
- def test_setup
168
- @g.setup
169
-
170
- assert_equal [@klass_alias, @ignored, @klass, @object],
171
- @g.classes.sort_by { |klass| klass.full_name }
172
- assert_equal [@top_level], @g.files
173
- assert_equal [@meth, @meth, @meth_bang, @meth_bang], @g.methods
174
- assert_equal [@klass_alias, @klass, @object], @g.modsort
175
- end
176
-
177
- def test_template_for
178
- classpage = Pathname.new @options.template_dir + 'class.rhtml'
179
-
180
- template = @g.send(:template_for, classpage, true, RDoc::ERBIO)
181
- assert_kind_of RDoc::ERBIO, template
182
-
183
- assert_same template, @g.send(:template_for, classpage)
184
- end
185
-
186
- def test_template_for_dry_run
187
- classpage = Pathname.new @options.template_dir + 'class.rhtml'
188
-
189
- template = @g.send(:template_for, classpage, true, ERB)
190
- assert_kind_of ERB, template
191
-
192
- assert_same template, @g.send(:template_for, classpage)
193
- end
194
-
195
- def test_template_for_partial
196
- partial = Pathname.new @options.template_dir + '_sidebar_classes.rhtml'
197
-
198
- template = @g.send(:template_for, partial, false, RDoc::ERBPartial)
199
-
200
- assert_kind_of RDoc::ERBPartial, template
201
-
202
- assert_same template, @g.send(:template_for, partial)
203
- end
204
-
205
- ##
206
- # Asserts that +filename+ has a link count greater than 1 if hard links to
207
- # @tmpdir are supported.
208
-
209
- def assert_hard_link filename
210
- assert_file filename
211
-
212
- src = @g.template_dir + '_head.rhtml'
213
- dst = File.join @tmpdir, 'hardlinktest'
214
-
215
- begin
216
- FileUtils.ln src, dst
217
- nlink = File.stat(dst).nlink if File.identical? src, dst
218
- FileUtils.rm dst
219
- return if nlink == 1
220
- rescue SystemCallError
221
- return
222
- end
223
-
224
- assert_operator File.stat(filename).nlink, :>, 1,
225
- "#{filename} is not hard-linked"
226
- end
227
-
228
- end
229
-
@@ -1,324 +0,0 @@
1
- # coding: US-ASCII
2
-
3
- require 'rdoc/test_case'
4
-
5
- class TestRDocGeneratorJsonIndex < RDoc::TestCase
6
-
7
- def setup
8
- super
9
-
10
- @tmpdir = File.join Dir.tmpdir, "test_rdoc_generator_darkfish_#{$$}"
11
- FileUtils.mkdir_p @tmpdir
12
-
13
- @options = RDoc::Options.new
14
- @options.files = []
15
- # JsonIndex is used in conjunction with another generator
16
- @options.setup_generator 'darkfish'
17
- @options.template_dir = ''
18
- @options.op_dir = @tmpdir
19
- @options.option_parser = OptionParser.new
20
- @options.finish
21
-
22
- @darkfish = RDoc::Generator::Darkfish.new @store, @options
23
- @g = RDoc::Generator::JsonIndex.new @darkfish, @options
24
-
25
- @rdoc.options = @options
26
- @rdoc.generator = @g
27
-
28
- @top_level = @store.add_file 'file.rb'
29
- @top_level.parser = RDoc::Parser::Ruby
30
-
31
- @klass = @top_level.add_class RDoc::NormalClass, 'C'
32
-
33
- @meth = @klass.add_method RDoc::AnyMethod.new(nil, 'meth')
34
- @meth.record_location @top_level
35
-
36
- @nest_klass = @klass.add_class RDoc::NormalClass, 'D'
37
- @nest_klass.record_location @top_level
38
-
39
- @nest_meth = @nest_klass.add_method RDoc::AnyMethod.new(nil, 'meth')
40
-
41
- @ignored = @top_level.add_class RDoc::NormalClass, 'Ignored'
42
- @ignored.ignore
43
-
44
- @page = @store.add_file 'page.rdoc'
45
- @page.parser = RDoc::Parser::Simple
46
-
47
- @top_levels = [@top_level, @page].sort
48
- @klasses = [@klass, @nest_klass, @ignored]
49
-
50
- Dir.chdir @tmpdir
51
- end
52
-
53
- def teardown
54
- super
55
-
56
- Dir.chdir @pwd
57
- FileUtils.rm_rf @tmpdir
58
- end
59
-
60
- def test_build_index
61
- index = @g.build_index
62
-
63
- expected = {
64
- :index => {
65
- :searchIndex => %w[c d meth() meth() page],
66
- :longSearchIndex => %w[c c::d c#meth() c::d#meth()],
67
- :info => [
68
- @klass.search_record[2..-1],
69
- @nest_klass.search_record[2..-1],
70
- @meth.search_record[2..-1],
71
- @nest_meth.search_record[2..-1],
72
- @page.search_record[2..-1],
73
- ],
74
- },
75
- }
76
-
77
- expected[:index][:longSearchIndex] << ''
78
-
79
- assert_equal expected, index
80
- end
81
-
82
- def test_class_dir
83
- assert_equal @darkfish.class_dir, @g.class_dir
84
- end
85
-
86
- def test_file_dir
87
- assert_equal @darkfish.file_dir, @g.file_dir
88
- end
89
-
90
- def test_generate
91
- @g.generate
92
-
93
- assert_file 'js/searcher.js'
94
- assert_file 'js/navigation.js'
95
- assert_file 'js/search_index.js'
96
-
97
- json = File.read 'js/search_index.js'
98
-
99
- json =~ /\Avar search_data = /
100
-
101
- assignment = $&
102
- index = $'
103
-
104
- refute_empty assignment
105
-
106
- index = JSON.parse index
107
-
108
- info = [
109
- @klass.search_record[2..-1],
110
- @nest_klass.search_record[2..-1],
111
- @meth.search_record[2..-1],
112
- @nest_meth.search_record[2..-1],
113
- @page.search_record[2..-1],
114
- ]
115
-
116
- expected = {
117
- 'index' => {
118
- 'searchIndex' => [
119
- 'c',
120
- 'd',
121
- 'meth()',
122
- 'meth()',
123
- 'page',
124
- ],
125
- 'longSearchIndex' => [
126
- 'c',
127
- 'c::d',
128
- 'c#meth()',
129
- 'c::d#meth()',
130
- '',
131
- ],
132
- 'info' => info,
133
- },
134
- }
135
-
136
- assert_equal expected, index
137
- end
138
-
139
- def test_generate_gzipped
140
- begin
141
- require 'zlib'
142
- rescue LoadError
143
- skip "no zlib"
144
- end
145
- @g.generate
146
- @g.generate_gzipped
147
-
148
- assert_file 'js/searcher.js'
149
- assert_file 'js/searcher.js.gz'
150
- assert_file 'js/navigation.js'
151
- assert_file 'js/navigation.js.gz'
152
- assert_file 'js/search_index.js'
153
- assert_file 'js/search_index.js.gz'
154
-
155
- json = File.open('js/search_index.js.gz') {|gzip|
156
- Zlib::GzipReader.new(gzip).read
157
- }
158
-
159
- json =~ /\Avar search_data = /
160
-
161
- assignment = $&
162
- index = $'
163
-
164
- refute_empty assignment
165
-
166
- index = JSON.parse index
167
-
168
- info = [
169
- @klass.search_record[2..-1],
170
- @nest_klass.search_record[2..-1],
171
- @meth.search_record[2..-1],
172
- @nest_meth.search_record[2..-1],
173
- @page.search_record[2..-1],
174
- ]
175
-
176
- expected = {
177
- 'index' => {
178
- 'searchIndex' => [
179
- 'c',
180
- 'd',
181
- 'meth()',
182
- 'meth()',
183
- 'page',
184
- ],
185
- 'longSearchIndex' => [
186
- 'c',
187
- 'c::d',
188
- 'c#meth()',
189
- 'c::d#meth()',
190
- '',
191
- ],
192
- 'info' => info,
193
- },
194
- }
195
-
196
- assert_equal expected, index
197
- end
198
-
199
- def test_generate_utf_8
200
- skip "Encoding not implemented" unless Object.const_defined? :Encoding
201
-
202
- text = "5\xB0"
203
- text.force_encoding Encoding::ISO_8859_1
204
- @klass.add_comment comment(text), @top_level
205
-
206
- @g.generate
207
-
208
- json = File.read 'js/search_index.js'
209
- json.force_encoding Encoding::UTF_8
210
-
211
- json =~ /\Avar search_data = /
212
-
213
- index = $'
214
-
215
- index = JSON.parse index
216
-
217
- klass_record = @klass.search_record[2..-1]
218
- klass_record[-1] = "<p>5\xc2\xb0\n"
219
- klass_record.last.force_encoding Encoding::UTF_8
220
-
221
- info = [
222
- klass_record,
223
- @nest_klass.search_record[2..-1],
224
- @meth.search_record[2..-1],
225
- @nest_meth.search_record[2..-1],
226
- @page.search_record[2..-1],
227
- ]
228
-
229
- expected = {
230
- 'index' => {
231
- 'searchIndex' => [
232
- 'c',
233
- 'd',
234
- 'meth()',
235
- 'meth()',
236
- 'page',
237
- ],
238
- 'longSearchIndex' => [
239
- 'c',
240
- 'c::d',
241
- 'c#meth()',
242
- 'c::d#meth()',
243
- '',
244
- ],
245
- 'info' => info,
246
- },
247
- }
248
-
249
- assert_equal expected, index
250
- end
251
-
252
- def test_index_classes
253
- @g.reset @top_levels, @klasses
254
-
255
- @g.index_classes
256
-
257
- expected = {
258
- :searchIndex => %w[c d],
259
- :longSearchIndex => %w[c c::d],
260
- :info => [
261
- @klass.search_record[2..-1],
262
- @nest_klass.search_record[2..-1],
263
- ],
264
- }
265
-
266
- assert_equal expected, @g.index
267
- end
268
-
269
- def test_index_classes_nodoc
270
- @klass.document_self = false
271
- @nest_klass.document_self = false
272
- @meth.document_self = false
273
- @nest_meth.document_self = false
274
-
275
- @g.reset @top_levels, @klasses
276
-
277
- @g.index_classes
278
-
279
- expected = {
280
- :searchIndex => [],
281
- :longSearchIndex => [],
282
- :info => [],
283
- }
284
-
285
- assert_equal expected, @g.index
286
- end
287
-
288
- def test_index_methods
289
- @g.reset @top_levels, @klasses
290
-
291
- @g.index_methods
292
-
293
- expected = {
294
- :searchIndex => %w[meth() meth()],
295
- :longSearchIndex => %w[c#meth() c::d#meth()],
296
- :info => [
297
- @meth.search_record[2..-1],
298
- @nest_meth.search_record[2..-1],
299
- ],
300
- }
301
-
302
- assert_equal expected, @g.index
303
- end
304
-
305
- def test_index_pages
306
- @g.reset @top_levels, @klasses
307
-
308
- @g.index_pages
309
-
310
- expected = {
311
- :searchIndex => %w[page],
312
- :longSearchIndex => [''],
313
- :info => [@page.search_record[2..-1]],
314
- }
315
-
316
- assert_equal expected, @g.index
317
- end
318
-
319
- def test_search_string
320
- assert_equal 'cd', @g.search_string('C d')
321
- end
322
-
323
- end
324
-