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,47 +0,0 @@
1
- require File.expand_path '../xref_test_case', __FILE__
2
-
3
- class TestRDocNormalClass < XrefTestCase
4
-
5
- def test_ancestors
6
- klass = @top_level.add_class RDoc::NormalClass, 'Klass'
7
- incl = RDoc::Include.new 'Incl', ''
8
-
9
- sub_klass = @top_level.add_class RDoc::NormalClass, 'SubClass'
10
- sub_klass.superclass = klass
11
- sub_klass.add_include incl
12
-
13
- assert_equal [incl.name, klass, 'Object'], sub_klass.ancestors
14
- end
15
-
16
- def test_ancestors_multilevel
17
- c1 = @top_level.add_class RDoc::NormalClass, 'Outer'
18
- c2 = @top_level.add_class RDoc::NormalClass, 'Middle', c1.full_name
19
- c3 = @top_level.add_class RDoc::NormalClass, 'Inner', c2.full_name
20
-
21
- assert_equal [c2, c1, 'Object'], c3.ancestors
22
- end
23
-
24
- def test_aref
25
- assert_equal 'class-C1', @c1.aref
26
- assert_equal 'class-C2::C3', @c2_c3.aref
27
- end
28
-
29
- def test_direct_ancestors
30
- incl = RDoc::Include.new 'Incl', ''
31
-
32
- c1 = @top_level.add_class RDoc::NormalClass, 'Outer'
33
- c2 = @top_level.add_class RDoc::NormalClass, 'Middle', c1.full_name
34
- c3 = @top_level.add_class RDoc::NormalClass, 'Inner', c2.full_name
35
- c3.add_include incl
36
-
37
- assert_equal [incl.name, c2], c3.direct_ancestors
38
- end
39
-
40
- def test_definition
41
- c = RDoc::NormalClass.new 'C'
42
-
43
- assert_equal 'class C', c.definition
44
- end
45
-
46
- end
47
-
@@ -1,42 +0,0 @@
1
- require File.expand_path '../xref_test_case', __FILE__
2
-
3
- class TestRDocNormalModule < XrefTestCase
4
-
5
- def setup
6
- super
7
-
8
- @mod = RDoc::NormalModule.new 'Mod'
9
- end
10
-
11
- def test_ancestors_module
12
- top_level = @store.add_file 'file.rb'
13
- mod = top_level.add_module RDoc::NormalModule, 'Mod'
14
- incl = RDoc::Include.new 'Incl', ''
15
-
16
- mod.add_include incl
17
-
18
- assert_equal [incl.name], mod.ancestors
19
-
20
- mod2 = top_level.add_module RDoc::NormalModule, 'Inc2'
21
- inc2 = RDoc::Include.new 'Inc2', ''
22
- mod.add_include inc2
23
- assert_equal [mod2, incl.name], mod.ancestors
24
- end
25
-
26
- def test_aref
27
- assert_equal 'module-M1', @m1.aref
28
- assert_equal 'module-M1::M2', @m1_m2.aref
29
- end
30
-
31
- def test_definition
32
- m = RDoc::NormalModule.new 'M'
33
-
34
- assert_equal 'module M', m.definition
35
- end
36
-
37
- def test_module_eh
38
- assert @mod.module?
39
- end
40
-
41
- end
42
-
@@ -1,766 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocOptions < RDoc::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @options = RDoc::Options.new
9
- @generators = RDoc::RDoc::GENERATORS.dup
10
- end
11
-
12
- def teardown
13
- super
14
-
15
- RDoc::RDoc::GENERATORS.replace @generators
16
- end
17
-
18
- def test_check_files
19
- skip "assumes UNIX permission model" if /mswin|mingw/ =~ RUBY_PLATFORM
20
-
21
- out, err = capture_io do
22
- temp_dir do
23
- FileUtils.touch 'unreadable'
24
- FileUtils.chmod 0, 'unreadable'
25
-
26
- @options.files = %w[nonexistent unreadable]
27
-
28
- @options.check_files
29
- end
30
- end
31
-
32
- assert_empty @options.files
33
-
34
- assert_empty out
35
- assert_empty err
36
- end
37
-
38
- def test_check_files_warn
39
- @options.verbosity = 2
40
-
41
- out, err = verbose_capture_io do
42
- @options.files = %w[nonexistent]
43
-
44
- @options.check_files
45
- end
46
-
47
- assert_empty out
48
- assert_equal "file 'nonexistent' not found\n", err
49
- assert_empty @options.files
50
- end
51
-
52
- def test_dry_run_default
53
- refute @options.dry_run
54
- end
55
-
56
- def test_encode_with
57
- coder = {}
58
- class << coder; alias add []=; end
59
-
60
- @options.encode_with coder
61
-
62
- encoding = Object.const_defined?(:Encoding) ? 'UTF-8' : nil
63
-
64
- expected = {
65
- 'charset' => 'UTF-8',
66
- 'encoding' => encoding,
67
- 'exclude' => [],
68
- 'hyperlink_all' => false,
69
- 'line_numbers' => false,
70
- 'locale' => nil,
71
- 'locale_dir' => 'locale',
72
- 'locale_name' => nil,
73
- 'main_page' => nil,
74
- 'markup' => 'rdoc',
75
- 'output_decoration' => true,
76
- 'page_dir' => nil,
77
- 'rdoc_include' => [],
78
- 'show_hash' => false,
79
- 'static_path' => [],
80
- 'tab_width' => 8,
81
- 'template_stylesheets' => [],
82
- 'title' => nil,
83
- 'visibility' => :protected,
84
- 'webcvs' => nil,
85
- }
86
-
87
- assert_equal expected, coder
88
- end
89
-
90
- def test_encode_with_trim_paths
91
- subdir = nil
92
- coder = {}
93
- class << coder; alias add []=; end
94
-
95
- temp_dir do |dir|
96
- FileUtils.mkdir 'project'
97
- FileUtils.mkdir 'dir'
98
- FileUtils.touch 'file'
99
-
100
- Dir.chdir 'project' do
101
- subdir = File.expand_path 'subdir'
102
- FileUtils.mkdir 'subdir'
103
- @options.parse %w[
104
- --copy subdir
105
- --copy ../file
106
- --copy ../
107
- --copy /
108
- --include subdir
109
- --include ../dir
110
- --include ../
111
- --include /
112
- ]
113
-
114
- @options.encode_with coder
115
- end
116
- end
117
-
118
- assert_equal [subdir], coder['rdoc_include']
119
-
120
- assert_equal [subdir], coder['static_path']
121
- end
122
-
123
- def test_encoding_default
124
- skip "Encoding not implemented" unless Object.const_defined? :Encoding
125
-
126
- assert_equal Encoding::UTF_8, @options.encoding
127
- end
128
-
129
- def test_generator_descriptions
130
- # HACK autotest/isolate should take care of this
131
- RDoc::RDoc::GENERATORS.clear
132
- RDoc::RDoc::GENERATORS['darkfish'] = RDoc::Generator::Darkfish
133
- RDoc::RDoc::GENERATORS['ri'] = RDoc::Generator::RI
134
-
135
- expected = <<-EXPECTED.chomp
136
- darkfish - HTML generator, written by Michael Granger
137
- ri - creates ri data files
138
- EXPECTED
139
-
140
- assert_equal expected, @options.generator_descriptions
141
- end
142
-
143
- def test_init_with_encoding
144
- skip "Encoding not implemented" unless Object.const_defined? :Encoding
145
- RDoc.load_yaml
146
-
147
- @options.encoding = Encoding::IBM437
148
-
149
- options = YAML.load YAML.dump @options
150
-
151
- assert_equal Encoding::IBM437, options.encoding
152
- end
153
-
154
- def test_init_with_trim_paths
155
- RDoc.load_yaml
156
-
157
- yaml = <<-YAML
158
- --- !ruby/object:RDoc::Options
159
- static_path:
160
- - /etc
161
- rdoc_include:
162
- - /etc
163
- YAML
164
-
165
- options = YAML.load yaml
166
-
167
- assert_empty options.rdoc_include
168
- assert_empty options.static_path
169
- end
170
-
171
- def test_parse_copy_files_file_relative
172
- file = File.basename __FILE__
173
- expected = File.expand_path __FILE__
174
-
175
- Dir.chdir File.expand_path('..', __FILE__) do
176
- @options.parse %W[--copy-files #{file}]
177
-
178
- assert_equal [expected], @options.static_path
179
- end
180
- end
181
-
182
- def test_parse_copy_files_file_absolute
183
- @options.parse %W[--copy-files #{File.expand_path __FILE__}]
184
-
185
- assert_equal [File.expand_path(__FILE__)], @options.static_path
186
- end
187
-
188
- def test_parse_copy_files_directory_relative
189
- @options.parse %w[--copy-files .]
190
-
191
- assert_equal [@pwd], @options.static_path
192
- end
193
-
194
- def test_parse_copy_files_directory_absolute
195
- @options.parse %w[--copy-files /]
196
-
197
- assert_equal 1, @options.static_path.length
198
-
199
- assert_match %r%^([A-Z]:)?/$%i, @options.static_path.first
200
- end
201
-
202
- def test_parse_coverage
203
- @options.parse %w[--dcov]
204
-
205
- assert @options.coverage_report
206
- assert @options.force_update
207
- end
208
-
209
- def test_parse_coverage_no
210
- @options.parse %w[--no-dcov]
211
-
212
- refute @options.coverage_report
213
- end
214
-
215
- def test_parse_coverage_level_1
216
- @options.parse %w[--dcov=1]
217
-
218
- assert_equal 1, @options.coverage_report
219
- end
220
-
221
- def test_parse_dash_p
222
- out, err = capture_io do
223
- @options.parse %w[-p]
224
- end
225
-
226
- assert @options.pipe
227
- refute_match %r%^Usage: %, err
228
- refute_match %r%^invalid options%, err
229
-
230
- assert_empty out
231
- end
232
-
233
- def test_parse_dash_p_files
234
- out, err = capture_io do
235
- @options.parse ['-p', File.expand_path(__FILE__)]
236
- end
237
-
238
- refute @options.pipe
239
- refute_match %r%^Usage: %, err
240
- assert_match %r%^invalid options: -p .with files.%, err
241
-
242
- assert_empty out
243
- end
244
-
245
- def test_parse_default
246
- @options.parse []
247
-
248
- assert_equal RDoc::Generator::Darkfish, @options.generator
249
- assert_equal 'darkfish', @options.template
250
- assert_match %r%rdoc/generator/template/darkfish$%, @options.template_dir
251
- end
252
-
253
- def test_parse_deprecated
254
- dep_hash = RDoc::Options::DEPRECATED
255
- options = dep_hash.keys.sort
256
-
257
- out, err = capture_io do
258
- @options.parse options
259
- end
260
-
261
- dep_hash.each_pair do |opt, message|
262
- assert_match %r%.*#{opt}.+#{message}%, err
263
- end
264
-
265
- assert_empty out
266
- end
267
-
268
- def test_parse_dry_run
269
- @options.parse %w[--dry-run]
270
-
271
- assert @options.dry_run
272
- end
273
-
274
- def test_parse_encoding
275
- skip "Encoding not implemented" unless Object.const_defined? :Encoding
276
-
277
- @options.parse %w[--encoding Big5]
278
-
279
- assert_equal Encoding::Big5, @options.encoding
280
- assert_equal 'Big5', @options.charset
281
- end
282
-
283
- def test_parse_encoding_invalid
284
- skip "Encoding not implemented" unless Object.const_defined? :Encoding
285
-
286
- out, err = capture_io do
287
- @options.parse %w[--encoding invalid]
288
- end
289
-
290
- assert_match %r%^invalid options: --encoding invalid%, err
291
-
292
- assert_empty out
293
- end
294
-
295
- def test_parse_formatter
296
- e = assert_raises OptionParser::InvalidOption do
297
- @options.parse %w[--format darkfish --format ri]
298
- end
299
-
300
- assert_equal 'invalid option: --format generator already set to darkfish',
301
- e.message
302
- end
303
-
304
- def test_parse_formatter_ri
305
- e = assert_raises OptionParser::InvalidOption do
306
- @options.parse %w[--format darkfish --ri]
307
- end
308
-
309
- assert_equal 'invalid option: --ri generator already set to darkfish',
310
- e.message
311
-
312
- @options = RDoc::Options.new
313
-
314
- e = assert_raises OptionParser::InvalidOption do
315
- @options.parse %w[--format darkfish -r]
316
- end
317
-
318
- assert_equal 'invalid option: -r generator already set to darkfish',
319
- e.message
320
- end
321
-
322
- def test_parse_formatter_ri_site
323
- e = assert_raises OptionParser::InvalidOption do
324
- @options.parse %w[--format darkfish --ri-site]
325
- end
326
-
327
- assert_equal 'invalid option: --ri-site generator already set to darkfish',
328
- e.message
329
-
330
- @options = RDoc::Options.new
331
-
332
- e = assert_raises OptionParser::InvalidOption do
333
- @options.parse %w[--format darkfish -R]
334
- end
335
-
336
- assert_equal 'invalid option: -R generator already set to darkfish',
337
- e.message
338
- end
339
-
340
- def test_parse_h
341
- out, = capture_io do
342
- begin
343
- @options.parse %w[-h]
344
- rescue SystemExit
345
- end
346
- end
347
-
348
- assert_equal 1, out.scan(/HTML generator options:/).length
349
- assert_equal 1, out.scan(/ri generator options:/). length
350
- end
351
-
352
- def test_parse_help
353
- out, = capture_io do
354
- begin
355
- @options.parse %w[--help]
356
- rescue SystemExit
357
- end
358
- end
359
-
360
- assert_equal 1, out.scan(/HTML generator options:/).length
361
- assert_equal 1, out.scan(/ri generator options:/). length
362
- end
363
-
364
- def test_parse_help_extra_generator
365
- RDoc::RDoc::GENERATORS['test'] = Class.new do
366
- def self.setup_options options
367
- op = options.option_parser
368
-
369
- op.separator 'test generator options:'
370
- end
371
- end
372
-
373
- out, = capture_io do
374
- begin
375
- @options.parse %w[--help]
376
- rescue SystemExit
377
- end
378
- end
379
-
380
- assert_equal 1, out.scan(/HTML generator options:/).length
381
- assert_equal 1, out.scan(/ri generator options:/). length
382
- assert_equal 1, out.scan(/test generator options:/).length
383
- end
384
-
385
- def test_parse_format_for_extra_generator
386
- RDoc::RDoc::GENERATORS['test'] = Class.new do
387
- def self.setup_options options
388
- op = options.option_parser
389
-
390
- op.separator 'test generator options:'
391
- end
392
- end
393
-
394
- @options.setup_generator 'test'
395
-
396
- assert_equal @options.generator_name, 'test'
397
- end
398
-
399
- def test_parse_ignore_invalid
400
- out, err = capture_io do
401
- @options.parse %w[--ignore-invalid --bogus]
402
- end
403
-
404
- refute_match %r%^Usage: %, err
405
- assert_match %r%^invalid options: --bogus%, err
406
-
407
- assert_empty out
408
- end
409
-
410
- def test_parse_ignore_invalid_default
411
- out, err = capture_io do
412
- @options.parse %w[--bogus --main BLAH]
413
- end
414
-
415
- refute_match %r%^Usage: %, err
416
- assert_match %r%^invalid options: --bogus%, err
417
-
418
- assert_equal 'BLAH', @options.main_page
419
-
420
- assert_empty out
421
- end
422
-
423
- def test_parse_ignore_invalid_no
424
- out, err = capture_io do
425
- assert_raises SystemExit do
426
- @options.parse %w[--no-ignore-invalid --bogus=arg --bobogus --visibility=extended]
427
- end
428
- end
429
-
430
- assert_match %r%^Usage: %, err
431
- assert_match %r%^invalid options: --bogus=arg, --bobogus, --visibility=extended%, err
432
-
433
- assert_empty out
434
- end
435
-
436
- def test_parse_ignore_invalid_no_quiet
437
- out, err = capture_io do
438
- assert_raises SystemExit do
439
- @options.parse %w[--quiet --no-ignore-invalid --bogus=arg --bobogus --visibility=extended]
440
- end
441
- end
442
-
443
- refute_match %r%^Usage: %, err
444
- assert_match %r%^invalid options: --bogus=arg, --bobogus, --visibility=extended%, err
445
-
446
- assert_empty out
447
- end
448
-
449
- def test_ignore_needless_arg
450
- out, err = capture_io do
451
- @options.parse %w[--ri=foo]
452
- end
453
-
454
- assert_match %r%^invalid options: --ri=foo%, err
455
-
456
- assert_empty out
457
- end
458
-
459
- def test_ignore_missing_arg
460
- out, err = capture_io do
461
- @options.parse %w[--copy-files]
462
- end
463
-
464
- assert_match %r%^invalid options: --copy-files%, err
465
-
466
- assert_empty out
467
- end
468
-
469
- def test_parse_main
470
- out, err = capture_io do
471
- @options.parse %w[--main MAIN]
472
- end
473
-
474
- assert_empty out
475
- assert_empty err
476
-
477
- assert_equal 'MAIN', @options.main_page
478
- end
479
-
480
- def test_parse_markup
481
- out, err = capture_io do
482
- @options.parse %w[--markup tomdoc]
483
- end
484
-
485
- assert_empty out
486
- assert_empty err
487
-
488
- assert_equal 'tomdoc', @options.markup
489
- end
490
-
491
- def test_parse_page_dir
492
- assert_nil @options.page_dir
493
-
494
- out, err = capture_io do
495
- @options.parse %W[--page-dir #{Dir.tmpdir}]
496
- end
497
-
498
- assert_empty out
499
- assert_empty err
500
-
501
- expected =
502
- Pathname(Dir.tmpdir).expand_path.relative_path_from @options.root
503
-
504
- assert_equal expected, @options.page_dir
505
- assert_equal [Dir.tmpdir], @options.files
506
- end
507
-
508
- def test_parse_page_dir_root
509
- assert_nil @options.page_dir
510
-
511
- Dir.mktmpdir do |dir|
512
- abs_root = dir
513
- abs_page_dir = File.join dir, 'pages'
514
- FileUtils.mkdir abs_page_dir
515
-
516
- out, err = capture_io do
517
- @options.parse %W[--page-dir #{abs_page_dir} --root #{abs_root}]
518
- end
519
-
520
- assert_empty out
521
- assert_empty err
522
-
523
- assert_equal Pathname('pages'), @options.page_dir
524
- assert_equal [abs_page_dir], @options.files
525
- end
526
- end
527
-
528
- def test_parse_ri_site
529
- @options.parse %w[--ri-site]
530
-
531
- assert_equal RDoc::Generator::RI, @options.generator
532
- assert_equal RDoc::RI::Paths.site_dir, @options.op_dir
533
- end
534
-
535
- def test_parse_root
536
- assert_equal Pathname(Dir.pwd), @options.root
537
-
538
- out, err = capture_io do
539
- @options.parse %W[--root #{Dir.tmpdir}]
540
- end
541
-
542
- assert_empty out
543
- assert_empty err
544
-
545
- assert_equal Pathname(Dir.tmpdir), @options.root
546
- assert_includes @options.rdoc_include, @options.root.to_s
547
- end
548
-
549
- def test_parse_tab_width
550
- @options.parse %w[--tab-width=1]
551
- assert_equal 1, @options.tab_width
552
-
553
- @options.parse %w[-w2]
554
- assert_equal 2, @options.tab_width
555
-
556
- _, err = capture_io do
557
- @options.parse %w[-w=2]
558
- end
559
-
560
- assert_match 'invalid options', err
561
-
562
- _, err = capture_io do
563
- @options.parse %w[-w0]
564
- end
565
-
566
- assert_match 'invalid options', err
567
- end
568
-
569
- def test_parse_template
570
- out, err = capture_io do
571
- @options.parse %w[--template darkfish]
572
- end
573
-
574
- assert_empty out
575
- assert_empty err
576
-
577
- assert_equal 'darkfish', @options.template
578
-
579
- assert_match %r%rdoc/generator/template/darkfish$%, @options.template_dir
580
- end
581
-
582
- def test_parse_template_nonexistent
583
- out, err = capture_io do
584
- @options.parse %w[--template NONEXISTENT]
585
- end
586
-
587
- assert_empty out
588
- assert_equal "could not find template NONEXISTENT\n", err
589
-
590
- assert_equal 'darkfish', @options.template
591
- assert_match %r%rdoc/generator/template/darkfish$%, @options.template_dir
592
- end
593
-
594
- def test_parse_template_load_path
595
- orig_LOAD_PATH = $LOAD_PATH.dup
596
-
597
- template_dir = nil
598
-
599
- Dir.mktmpdir do |dir|
600
- $LOAD_PATH << dir
601
-
602
- template_dir = File.join dir, 'rdoc', 'generator', 'template', 'load_path'
603
-
604
- FileUtils.mkdir_p template_dir
605
-
606
- out, err = capture_io do
607
- @options.parse %w[--template load_path]
608
- end
609
-
610
- assert_empty out
611
- assert_empty err
612
- end
613
-
614
- assert_equal 'load_path', @options.template
615
- assert_equal template_dir, @options.template_dir
616
- ensure
617
- $LOAD_PATH.replace orig_LOAD_PATH
618
- end
619
-
620
- def test_parse_visibility
621
- @options.parse %w[--visibility=public]
622
- assert_equal :public, @options.visibility
623
-
624
- @options.parse %w[--visibility=protected]
625
- assert_equal :protected, @options.visibility
626
-
627
- @options.parse %w[--visibility=private]
628
- assert_equal :private, @options.visibility
629
-
630
- @options.parse %w[--visibility=nodoc]
631
- assert_equal :nodoc, @options.visibility
632
- end
633
-
634
- def test_parse_write_options
635
- tmpdir = File.join Dir.tmpdir, "test_rdoc_options_#{$$}"
636
- FileUtils.mkdir_p tmpdir
637
-
638
- Dir.chdir tmpdir do
639
- e = assert_raises SystemExit do
640
- @options.parse %w[--write-options]
641
- end
642
-
643
- assert_equal 0, e.status
644
-
645
- assert File.exist? '.rdoc_options'
646
- end
647
- ensure
648
- FileUtils.rm_rf tmpdir
649
- end
650
-
651
- def test_parse_extension_alias
652
- out, err = capture_io do
653
- @options.parse %w[--extension foobar=rdoc]
654
- end
655
-
656
- assert_includes RDoc::Parser.parsers, [/\.foobar$/, RDoc::Parser::Simple]
657
-
658
- assert_empty out
659
- assert_empty err
660
- end
661
-
662
- def test_setup_generator
663
- test_generator = Class.new do
664
- def self.setup_options op
665
- @op = op
666
- end
667
-
668
- def self.op() @op end
669
- end
670
-
671
- RDoc::RDoc::GENERATORS['test'] = test_generator
672
-
673
- @options.setup_generator 'test'
674
-
675
- assert_equal test_generator, @options.generator
676
- assert_equal [test_generator], @options.generator_options
677
-
678
- assert_equal @options, test_generator.op
679
- ensure
680
- RDoc::RDoc::GENERATORS.delete 'test'
681
- end
682
-
683
- def test_setup_generator_no_option_parser
684
- test_generator = Class.new do
685
- def self.setup_options op
686
- op.option_parser.separator nil
687
- @op = op
688
- end
689
-
690
- def self.op() @op end
691
- end
692
-
693
- RDoc::RDoc::GENERATORS['test'] = test_generator
694
-
695
- @options.setup_generator 'test'
696
-
697
- assert_equal test_generator, @options.generator
698
- assert_equal [test_generator], @options.generator_options
699
-
700
- assert_equal @options, test_generator.op
701
- ensure
702
- RDoc::RDoc::GENERATORS.delete 'test'
703
- end
704
-
705
- def test_update_output_dir
706
- assert @options.update_output_dir
707
-
708
- @options.update_output_dir = false
709
-
710
- refute @options.update_output_dir
711
- end
712
-
713
- def test_warn
714
- out, err = capture_io do
715
- @options.warn "warnings off"
716
- end
717
-
718
- assert_empty out
719
- assert_empty err
720
-
721
- @options.verbosity = 2
722
-
723
- out, err = verbose_capture_io do
724
- @options.warn "warnings on"
725
- end
726
-
727
- assert_empty out
728
- assert_equal "warnings on\n", err
729
- end
730
-
731
- def test_write_options
732
- temp_dir do |dir|
733
- @options.write_options
734
-
735
- assert File.exist? '.rdoc_options'
736
-
737
- assert_equal @options, YAML.load(File.read('.rdoc_options'))
738
- end
739
- end
740
-
741
- def test_version
742
- out, _ = capture_io do
743
- begin
744
- @options.parse %w[--version]
745
- rescue SystemExit
746
- end
747
- end
748
-
749
- assert out.include?(RDoc::VERSION)
750
-
751
- out, _ = capture_io do
752
- begin
753
- @options.parse %w[-v]
754
- rescue SystemExit
755
- end
756
- end
757
-
758
- assert out.include?(RDoc::VERSION)
759
- end
760
-
761
- def test_visibility
762
- @options.visibility = :all
763
- assert_equal :private, @options.visibility
764
- end
765
- end
766
-