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,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
-
@@ -1,59 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocGeneratorMarkup < RDoc::TestCase
4
-
5
- include RDoc::Text
6
- include RDoc::Generator::Markup
7
-
8
- attr_reader :store
9
-
10
- def setup
11
- super
12
-
13
- @options = RDoc::Options.new
14
- @rdoc.options = @options
15
-
16
- @parent = self
17
- @path = '/index.html'
18
- @symbols = {}
19
- end
20
-
21
- def test_aref_to
22
- assert_equal 'Foo/Bar.html', aref_to('Foo/Bar.html')
23
- end
24
-
25
- def test_as_href
26
- assert_equal '../index.html', as_href('Foo/Bar.html')
27
- end
28
-
29
- def test_cvs_url
30
- assert_equal 'http://example/this_page',
31
- cvs_url('http://example/', 'this_page')
32
-
33
- assert_equal 'http://example/?page=this_page&foo=bar',
34
- cvs_url('http://example/?page=%s&foo=bar', 'this_page')
35
- end
36
-
37
- def test_description
38
- @comment = '= Hello'
39
-
40
- links = '<span><a href="#label-Hello">&para;</a> ' +
41
- '<a href="#top">&uarr;</a></span>'
42
-
43
- assert_equal "\n<h1 id=\"label-Hello\">Hello#{links}</h1>\n", description
44
- end
45
-
46
- def test_formatter
47
- assert_kind_of RDoc::Markup::ToHtmlCrossref, formatter
48
- refute formatter.show_hash
49
- assert_same self, formatter.context
50
- end
51
-
52
- attr_reader :path
53
-
54
- def find_symbol name
55
- @symbols[name]
56
- end
57
-
58
- end
59
-
@@ -1,91 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocGeneratorPOT < RDoc::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @options = RDoc::Options.new
9
- @tmpdir = File.join Dir.tmpdir, "test_rdoc_generator_pot_#{$$}"
10
- FileUtils.mkdir_p @tmpdir
11
-
12
- @generator = RDoc::Generator::POT.new @store, @options
13
-
14
- @top_level = @store.add_file 'file.rb'
15
- @klass = @top_level.add_class RDoc::NormalClass, 'Object'
16
- @klass.add_comment 'This is a class', @top_level
17
- @klass.add_section 'This is a section', comment('This is a section comment')
18
-
19
- @const = RDoc::Constant.new "CONSTANT", "29", "This is a constant"
20
-
21
- @meth = RDoc::AnyMethod.new nil, 'method'
22
- @meth.record_location @top_level
23
- @meth.comment = 'This is a method'
24
-
25
- @attr = RDoc::Attr.new nil, 'attr', 'RW', ''
26
- @attr.record_location @top_level
27
- @attr.comment = 'This is an attribute'
28
-
29
- @klass.add_constant @const
30
- @klass.add_method @meth
31
- @klass.add_attribute @attr
32
-
33
- Dir.chdir @tmpdir
34
- end
35
-
36
- def teardown
37
- super
38
-
39
- Dir.chdir @pwd
40
- FileUtils.rm_rf @tmpdir
41
- end
42
-
43
- def test_generate
44
- @generator.generate
45
-
46
- assert_equal <<-POT, File.read(File.join(@tmpdir, 'rdoc.pot'))
47
- # SOME DESCRIPTIVE TITLE.
48
- # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
49
- # This file is distributed under the same license as the PACKAGE package.
50
- # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
51
- #, fuzzy
52
- msgid ""
53
- msgstr ""
54
- "Project-Id-Version: PACKAGE VERSEION\\n"
55
- "Report-Msgid-Bugs-To:\\n"
56
- "PO-Revision-Date: YEAR-MO_DA HO:MI+ZONE\\n"
57
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"
58
- "Language-Team: LANGUAGE <LL@li.org>\\n"
59
- "Language:\\n"
60
- "MIME-Version: 1.0\\n"
61
- "Content-Type: text/plain; charset=CHARSET\\n"
62
- "Content-Transfer-Encoding: 8bit\\n"
63
- "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\\n"
64
-
65
- #. Object
66
- msgid "This is a class"
67
- msgstr ""
68
-
69
- #. Object::CONSTANT
70
- msgid "This is a constant"
71
- msgstr ""
72
-
73
- #. Object#method
74
- msgid "This is a method"
75
- msgstr ""
76
-
77
- #. Object: section title
78
- msgid "This is a section"
79
- msgstr ""
80
-
81
- #. Object: This is a section
82
- msgid "This is a section comment"
83
- msgstr ""
84
-
85
- #. Object#attr
86
- msgid "This is an attribute"
87
- msgstr ""
88
- POT
89
- end
90
-
91
- end