yard 0.7.5 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of yard might be problematic. Click here for more details.

Files changed (339) hide show
  1. data/.yardopts +10 -2
  2. data/ChangeLog +1263 -38
  3. data/LEGAL +5 -5
  4. data/LICENSE +1 -1
  5. data/README.md +91 -82
  6. data/Rakefile +6 -6
  7. data/benchmarks/builtins_vs_eval.rb +1 -1
  8. data/benchmarks/erb_vs_erubis.rb +4 -4
  9. data/benchmarks/generation.rb +5 -5
  10. data/benchmarks/parsing.rb +2 -2
  11. data/benchmarks/registry_store_types.rb +48 -0
  12. data/bin/yard +9 -1
  13. data/bin/yardoc +9 -1
  14. data/bin/yri +10 -2
  15. data/docs/CodeObjects.md +10 -10
  16. data/docs/GettingStarted.md +85 -83
  17. data/docs/Handlers.md +21 -21
  18. data/docs/Overview.md +7 -7
  19. data/docs/Parser.md +30 -30
  20. data/docs/Tags.md +250 -554
  21. data/docs/TagsArch.md +123 -0
  22. data/docs/Templates.md +58 -80
  23. data/docs/WhatsNew.md +378 -133
  24. data/docs/templates/default/fulldoc/html/full_list_tag.erb +7 -0
  25. data/docs/templates/default/fulldoc/html/setup.rb +6 -0
  26. data/docs/templates/default/layout/html/setup.rb +8 -0
  27. data/docs/templates/default/layout/html/tag_list.erb +11 -0
  28. data/docs/templates/default/yard_tags/html/list.erb +18 -0
  29. data/docs/templates/default/yard_tags/html/setup.rb +27 -0
  30. data/docs/templates/plugin.rb +65 -0
  31. data/lib/yard.rb +1 -10
  32. data/lib/yard/autoload.rb +75 -27
  33. data/lib/yard/cli/command.rb +5 -2
  34. data/lib/yard/cli/command_parser.rb +3 -2
  35. data/lib/yard/cli/diff.rb +1 -1
  36. data/lib/yard/cli/i18n.rb +69 -0
  37. data/lib/yard/cli/list.rb +1 -1
  38. data/lib/yard/cli/server.rb +30 -7
  39. data/lib/yard/cli/stats.rb +5 -6
  40. data/lib/yard/cli/yardoc.rb +95 -45
  41. data/lib/yard/cli/yri.rb +24 -3
  42. data/lib/yard/code_objects/base.rb +35 -4
  43. data/lib/yard/code_objects/extra_file_object.rb +1 -1
  44. data/lib/yard/code_objects/macro_object.rb +56 -99
  45. data/lib/yard/code_objects/method_object.rb +44 -6
  46. data/lib/yard/config.rb +18 -8
  47. data/lib/yard/core_ext/symbol_hash.rb +1 -1
  48. data/lib/yard/docstring.rb +45 -85
  49. data/lib/yard/docstring_parser.rb +269 -0
  50. data/lib/yard/handlers/base.rb +129 -118
  51. data/lib/yard/handlers/c/alias_handler.rb +15 -0
  52. data/lib/yard/handlers/c/attribute_handler.rb +13 -0
  53. data/lib/yard/handlers/c/base.rb +110 -0
  54. data/lib/yard/handlers/c/class_handler.rb +26 -0
  55. data/lib/yard/handlers/c/constant_handler.rb +12 -0
  56. data/lib/yard/handlers/c/handler_methods.rb +165 -0
  57. data/lib/yard/handlers/c/init_handler.rb +16 -0
  58. data/lib/yard/handlers/c/method_handler.rb +35 -0
  59. data/lib/yard/handlers/c/mixin_handler.rb +13 -0
  60. data/lib/yard/handlers/c/module_handler.rb +16 -0
  61. data/lib/yard/handlers/c/override_comment_handler.rb +22 -0
  62. data/lib/yard/handlers/c/path_handler.rb +10 -0
  63. data/lib/yard/handlers/c/struct_handler.rb +12 -0
  64. data/lib/yard/handlers/c/symbol_handler.rb +7 -0
  65. data/lib/yard/handlers/processor.rb +41 -30
  66. data/lib/yard/handlers/ruby/alias_handler.rb +0 -2
  67. data/lib/yard/handlers/ruby/attribute_handler.rb +16 -17
  68. data/lib/yard/handlers/ruby/base.rb +10 -6
  69. data/lib/yard/handlers/ruby/comment_handler.rb +9 -0
  70. data/lib/yard/handlers/ruby/dsl_handler.rb +14 -0
  71. data/lib/yard/handlers/ruby/dsl_handler_methods.rb +71 -0
  72. data/lib/yard/handlers/ruby/legacy/alias_handler.rb +0 -3
  73. data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +16 -17
  74. data/lib/yard/handlers/ruby/legacy/base.rb +28 -6
  75. data/lib/yard/handlers/ruby/legacy/comment_handler.rb +9 -0
  76. data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +16 -0
  77. data/lib/yard/handlers/ruby/legacy/method_handler.rb +0 -2
  78. data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +1 -1
  79. data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +18 -0
  80. data/lib/yard/handlers/ruby/method_handler.rb +10 -15
  81. data/lib/yard/handlers/ruby/mixin_handler.rb +1 -1
  82. data/lib/yard/handlers/ruby/module_function_handler.rb +26 -0
  83. data/lib/yard/handlers/ruby/struct_handler_methods.rb +3 -2
  84. data/lib/yard/i18n/pot_generator.rb +281 -0
  85. data/lib/yard/i18n/text.rb +72 -0
  86. data/lib/yard/logging.rb +3 -7
  87. data/lib/yard/options.rb +216 -0
  88. data/lib/yard/parser/c/c_parser.rb +225 -0
  89. data/lib/yard/parser/c/comment_parser.rb +131 -0
  90. data/lib/yard/parser/c/statement.rb +63 -0
  91. data/lib/yard/parser/ruby/ast_node.rb +91 -1
  92. data/lib/yard/parser/ruby/legacy/ruby_parser.rb +1 -0
  93. data/lib/yard/parser/ruby/legacy/statement.rb +7 -2
  94. data/lib/yard/parser/ruby/legacy/statement_list.rb +13 -22
  95. data/lib/yard/parser/ruby/ruby_parser.rb +87 -26
  96. data/lib/yard/parser/source_parser.rb +89 -88
  97. data/lib/yard/rake/yardoc_task.rb +1 -1
  98. data/lib/yard/registry.rb +21 -10
  99. data/lib/yard/registry_store.rb +48 -0
  100. data/lib/yard/serializers/file_system_serializer.rb +18 -20
  101. data/lib/yard/serializers/yardoc_serializer.rb +1 -0
  102. data/lib/yard/server/adapter.rb +2 -2
  103. data/lib/yard/server/commands/base.rb +1 -1
  104. data/lib/yard/server/commands/display_object_command.rb +13 -6
  105. data/lib/yard/server/commands/frames_command.rb +4 -21
  106. data/lib/yard/server/commands/library_command.rb +57 -11
  107. data/lib/yard/server/commands/list_command.rb +10 -34
  108. data/lib/yard/server/commands/search_command.rb +8 -2
  109. data/lib/yard/server/doc_server_helper.rb +34 -0
  110. data/lib/yard/server/rack_adapter.rb +5 -1
  111. data/lib/yard/server/router.rb +4 -10
  112. data/lib/yard/server/static_caching.rb +2 -2
  113. data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +2 -2
  114. data/lib/yard/server/templates/default/fulldoc/html/js/live.js +0 -15
  115. data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +3 -3
  116. data/lib/yard/server/templates/default/layout/html/script_setup.erb +8 -0
  117. data/lib/yard/server/templates/doc_server/processing/html/processing.erb +1 -1
  118. data/lib/yard/server/templates/doc_server/search/html/setup.rb +1 -1
  119. data/lib/yard/tags/default_factory.rb +31 -4
  120. data/lib/yard/tags/directives.rb +593 -0
  121. data/lib/yard/tags/library.rb +437 -35
  122. data/lib/yard/templates/engine.rb +17 -12
  123. data/lib/yard/templates/helpers/base_helper.rb +8 -2
  124. data/lib/yard/templates/helpers/html_helper.rb +57 -14
  125. data/lib/yard/templates/helpers/markup/rdoc_markup.rb +1 -1
  126. data/lib/yard/templates/helpers/markup_helper.rb +9 -9
  127. data/lib/yard/templates/helpers/text_helper.rb +2 -2
  128. data/lib/yard/templates/template.rb +42 -13
  129. data/lib/yard/templates/template_options.rb +81 -0
  130. data/spec/cli/command_parser_spec.rb +4 -4
  131. data/spec/cli/command_spec.rb +3 -3
  132. data/spec/cli/config_spec.rb +13 -13
  133. data/spec/cli/diff_spec.rb +13 -10
  134. data/spec/cli/gems_spec.rb +12 -12
  135. data/spec/cli/help_spec.rb +2 -2
  136. data/spec/cli/i18n_spec.rb +111 -0
  137. data/spec/cli/server_spec.rb +66 -18
  138. data/spec/cli/stats_spec.rb +15 -15
  139. data/spec/cli/yardoc_spec.rb +124 -97
  140. data/spec/cli/yri_spec.rb +14 -12
  141. data/spec/code_objects/base_spec.rb +104 -46
  142. data/spec/code_objects/class_object_spec.rb +33 -33
  143. data/spec/code_objects/code_object_list_spec.rb +5 -5
  144. data/spec/code_objects/constants_spec.rb +4 -3
  145. data/spec/code_objects/extra_file_object_spec.rb +19 -19
  146. data/spec/code_objects/macro_object_spec.rb +31 -37
  147. data/spec/code_objects/method_object_spec.rb +46 -23
  148. data/spec/code_objects/module_object_spec.rb +16 -16
  149. data/spec/code_objects/namespace_object_spec.rb +6 -6
  150. data/spec/code_objects/proxy_spec.rb +19 -19
  151. data/spec/config_spec.rb +33 -24
  152. data/spec/core_ext/array_spec.rb +1 -1
  153. data/spec/core_ext/file_spec.rb +8 -8
  154. data/spec/core_ext/hash_spec.rb +1 -1
  155. data/spec/core_ext/insertion_spec.rb +3 -3
  156. data/spec/core_ext/module_spec.rb +1 -1
  157. data/spec/core_ext/string_spec.rb +6 -6
  158. data/spec/core_ext/symbol_hash_spec.rb +11 -11
  159. data/spec/docstring_parser_spec.rb +207 -0
  160. data/spec/docstring_spec.rb +33 -146
  161. data/spec/handlers/alias_handler_spec.rb +14 -14
  162. data/spec/handlers/attribute_handler_spec.rb +20 -20
  163. data/spec/handlers/base_spec.rb +16 -16
  164. data/spec/handlers/c/alias_handler_spec.rb +33 -0
  165. data/spec/handlers/c/attribute_handler_spec.rb +40 -0
  166. data/spec/handlers/c/class_handler_spec.rb +64 -0
  167. data/spec/handlers/c/constant_handler_spec.rb +68 -0
  168. data/spec/handlers/c/init_handler_spec.rb +36 -0
  169. data/spec/handlers/c/method_handler_spec.rb +228 -0
  170. data/spec/handlers/c/mixin_handler_spec.rb +27 -0
  171. data/spec/handlers/c/module_handler_spec.rb +38 -0
  172. data/spec/handlers/c/override_comment_handler_spec.rb +43 -0
  173. data/spec/handlers/c/path_handler_spec.rb +35 -0
  174. data/spec/handlers/c/spec_helper.rb +11 -0
  175. data/spec/handlers/c/struct_handler_spec.rb +15 -0
  176. data/spec/handlers/class_condition_handler_spec.rb +10 -10
  177. data/spec/handlers/class_handler_spec.rb +38 -38
  178. data/spec/handlers/class_variable_handler_spec.rb +1 -1
  179. data/spec/handlers/constant_handler_spec.rb +7 -7
  180. data/spec/handlers/{macro_handler_spec.rb → dsl_handler_spec.rb} +72 -53
  181. data/spec/handlers/examples/alias_handler_001.rb.txt +5 -5
  182. data/spec/handlers/examples/class_condition_handler_001.rb.txt +9 -9
  183. data/spec/handlers/examples/class_handler_001.rb.txt +1 -1
  184. data/spec/handlers/examples/dsl_handler_001.rb.txt +110 -0
  185. data/spec/handlers/examples/exception_handler_001.rb.txt +14 -14
  186. data/spec/handlers/examples/method_condition_handler_001.rb.txt +2 -2
  187. data/spec/handlers/examples/method_handler_001.rb.txt +16 -16
  188. data/spec/handlers/examples/mixin_handler_001.rb.txt +8 -4
  189. data/spec/handlers/examples/private_constant_handler_001.rb.txt +1 -1
  190. data/spec/handlers/examples/visibility_handler_001.rb.txt +3 -3
  191. data/spec/handlers/examples/yield_handler_001.rb.txt +13 -14
  192. data/spec/handlers/exception_handler_spec.rb +9 -9
  193. data/spec/handlers/extend_handler_spec.rb +2 -2
  194. data/spec/handlers/legacy_base_spec.rb +34 -34
  195. data/spec/handlers/method_condition_handler_spec.rb +2 -2
  196. data/spec/handlers/method_handler_spec.rb +33 -33
  197. data/spec/handlers/mixin_handler_spec.rb +13 -9
  198. data/spec/handlers/module_function_handler_spec.rb +82 -0
  199. data/spec/handlers/module_handler_spec.rb +6 -6
  200. data/spec/handlers/private_constant_handler_spec.rb +3 -3
  201. data/spec/handlers/processor_spec.rb +5 -5
  202. data/spec/handlers/ruby/base_spec.rb +10 -6
  203. data/spec/handlers/ruby/legacy/base_spec.rb +11 -7
  204. data/spec/handlers/spec_helper.rb +2 -3
  205. data/spec/handlers/visibility_handler_spec.rb +6 -6
  206. data/spec/handlers/yield_handler_spec.rb +8 -8
  207. data/spec/i18n/pot_generator_spec.rb +244 -0
  208. data/spec/i18n/text_spec.rb +69 -0
  209. data/spec/options_spec.rb +160 -0
  210. data/spec/parser/base_spec.rb +3 -3
  211. data/spec/parser/c_parser_spec.rb +31 -257
  212. data/spec/parser/examples/array.c.txt +187 -187
  213. data/spec/parser/examples/extrafile.c.txt +1 -1
  214. data/spec/parser/examples/override.c.txt +1 -1
  215. data/spec/parser/ruby/ast_node_spec.rb +1 -1
  216. data/spec/parser/ruby/legacy/statement_list_spec.rb +24 -24
  217. data/spec/parser/ruby/legacy/token_list_spec.rb +7 -7
  218. data/spec/parser/ruby/ruby_parser_spec.rb +56 -34
  219. data/spec/parser/source_parser_spec.rb +125 -65
  220. data/spec/parser/tag_parsing_spec.rb +4 -4
  221. data/spec/rake/yardoc_task_spec.rb +10 -8
  222. data/spec/registry_spec.rb +65 -36
  223. data/spec/registry_store_spec.rb +90 -40
  224. data/spec/serializers/file_system_serializer_spec.rb +12 -12
  225. data/spec/serializers/yardoc_serializer_spec.rb +2 -2
  226. data/spec/server/adapter_spec.rb +3 -3
  227. data/spec/server/commands/base_spec.rb +8 -8
  228. data/spec/server/commands/library_command_spec.rb +3 -3
  229. data/spec/server/commands/static_file_command_spec.rb +7 -7
  230. data/spec/server/doc_server_helper_spec.rb +1 -1
  231. data/spec/server/doc_server_serializer_spec.rb +6 -6
  232. data/spec/server/rack_adapter_spec.rb +3 -3
  233. data/spec/server/router_spec.rb +19 -19
  234. data/spec/server/static_caching_spec.rb +4 -4
  235. data/spec/spec_helper.rb +7 -7
  236. data/spec/tags/default_factory_spec.rb +24 -16
  237. data/spec/tags/directives_spec.rb +422 -0
  238. data/spec/tags/library_spec.rb +15 -4
  239. data/spec/tags/overload_tag_spec.rb +6 -6
  240. data/spec/tags/ref_tag_list_spec.rb +8 -8
  241. data/spec/templates/class_spec.rb +7 -7
  242. data/spec/templates/constant_spec.rb +7 -7
  243. data/spec/templates/engine_spec.rb +28 -36
  244. data/spec/templates/examples/class001.html +108 -108
  245. data/spec/templates/examples/class002.html +17 -17
  246. data/spec/templates/examples/constant001.txt +1 -1
  247. data/spec/templates/examples/method001.html +45 -45
  248. data/spec/templates/examples/method002.html +25 -25
  249. data/spec/templates/examples/method003.html +60 -60
  250. data/spec/templates/examples/method004.html +7 -7
  251. data/spec/templates/examples/method005.html +28 -28
  252. data/spec/templates/examples/module001.html +321 -321
  253. data/spec/templates/examples/module001.txt +1 -1
  254. data/spec/templates/examples/module002.html +130 -130
  255. data/spec/templates/examples/module003.html +74 -74
  256. data/spec/templates/examples/module004.html +388 -0
  257. data/spec/templates/helpers/base_helper_spec.rb +32 -32
  258. data/spec/templates/helpers/html_helper_spec.rb +87 -68
  259. data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +9 -9
  260. data/spec/templates/helpers/markup/rdoc_markup_spec.rb +16 -16
  261. data/spec/templates/helpers/markup_helper_spec.rb +31 -28
  262. data/spec/templates/helpers/method_helper_spec.rb +7 -7
  263. data/spec/templates/helpers/shared_signature_examples.rb +9 -7
  264. data/spec/templates/helpers/text_helper_spec.rb +3 -3
  265. data/spec/templates/method_spec.rb +13 -13
  266. data/spec/templates/module_spec.rb +70 -24
  267. data/spec/templates/onefile_spec.rb +32 -15
  268. data/spec/templates/section_spec.rb +23 -23
  269. data/spec/templates/spec_helper.rb +31 -1
  270. data/spec/templates/tag_spec.rb +5 -5
  271. data/spec/templates/template_spec.rb +54 -46
  272. data/spec/verifier_spec.rb +5 -5
  273. data/templates/default/class/setup.rb +2 -2
  274. data/templates/default/docstring/html/abstract.erb +1 -1
  275. data/templates/default/docstring/html/note.erb +1 -1
  276. data/templates/default/docstring/html/private.erb +1 -1
  277. data/templates/default/docstring/html/todo.erb +1 -1
  278. data/templates/default/docstring/setup.rb +2 -2
  279. data/templates/default/fulldoc/html/css/full_list.css +4 -2
  280. data/templates/default/fulldoc/html/css/style.css +50 -44
  281. data/templates/default/fulldoc/html/frames.erb +21 -6
  282. data/templates/default/fulldoc/html/full_list.erb +5 -3
  283. data/templates/default/fulldoc/html/{full_list_files.erb → full_list_file.erb} +0 -0
  284. data/templates/default/fulldoc/html/js/app.js +29 -26
  285. data/templates/default/fulldoc/html/js/full_list.js +9 -9
  286. data/templates/default/fulldoc/html/js/jquery.js +4 -16
  287. data/templates/default/fulldoc/html/setup.rb +42 -38
  288. data/templates/default/layout/dot/header.erb +1 -1
  289. data/templates/default/layout/html/breadcrumb.erb +6 -6
  290. data/templates/default/layout/html/files.erb +1 -1
  291. data/templates/default/layout/html/footer.erb +1 -1
  292. data/templates/default/layout/html/headers.erb +3 -6
  293. data/templates/default/layout/html/index.erb +1 -1
  294. data/templates/default/layout/html/layout.erb +3 -7
  295. data/templates/default/layout/html/objects.erb +1 -1
  296. data/templates/default/layout/html/script_setup.erb +5 -0
  297. data/templates/default/layout/html/search.erb +4 -1
  298. data/templates/default/layout/html/setup.rb +8 -8
  299. data/templates/default/method_details/html/method_signature.erb +10 -3
  300. data/templates/default/method_details/setup.rb +1 -0
  301. data/templates/default/module/dot/info.erb +1 -1
  302. data/templates/default/module/dot/setup.rb +2 -2
  303. data/templates/default/module/html/attribute_details.erb +1 -1
  304. data/templates/default/module/html/children.erb +1 -1
  305. data/templates/default/module/html/defines.erb +1 -1
  306. data/templates/default/module/html/inherited_methods.erb +5 -4
  307. data/templates/default/module/html/item_summary.erb +15 -5
  308. data/templates/default/module/html/method_details_list.erb +2 -2
  309. data/templates/default/module/setup.rb +25 -12
  310. data/templates/default/module/text/setup.rb +1 -1
  311. data/templates/default/onefile/html/layout.erb +1 -1
  312. data/templates/default/onefile/html/setup.rb +2 -2
  313. data/templates/default/tags/html/example.erb +4 -2
  314. data/templates/default/tags/html/option.erb +1 -1
  315. data/templates/default/tags/html/overload.erb +1 -1
  316. data/templates/default/tags/html/see.erb +1 -1
  317. data/templates/default/tags/html/tag.erb +1 -1
  318. data/templates/default/tags/setup.rb +4 -3
  319. data/templates/guide/fulldoc/html/css/style.css +8 -8
  320. data/templates/guide/fulldoc/html/js/app.js +6 -6
  321. data/templates/guide/fulldoc/html/setup.rb +12 -12
  322. data/templates/guide/layout/html/layout.erb +11 -11
  323. data/templates/guide/layout/html/setup.rb +9 -9
  324. data/templates/guide/method/html/header.erb +2 -2
  325. data/templates/guide/method/html/setup.rb +1 -1
  326. metadata +68 -18
  327. data/bin/yard-graph +0 -4
  328. data/bin/yard-server +0 -4
  329. data/docs/Glossary.md +0 -12
  330. data/lib/yard/handlers/ruby/legacy/macro_handler.rb +0 -39
  331. data/lib/yard/handlers/ruby/macro_handler.rb +0 -40
  332. data/lib/yard/handlers/ruby/macro_handler_methods.rb +0 -131
  333. data/lib/yard/parser/c_parser.rb +0 -497
  334. data/lib/yard/server/templates/default/layout/html/headers.erb +0 -16
  335. data/lib/yard/server/templates/doc_server/frames/html/frames.erb +0 -13
  336. data/lib/yard/server/templates/doc_server/frames/html/setup.rb +0 -3
  337. data/lib/yard/server/templates/doc_server/full_list/html/full_list.erb +0 -34
  338. data/lib/yard/server/templates/doc_server/full_list/html/setup.rb +0 -20
  339. data/spec/handlers/examples/macro_handler_001.rb.txt +0 -83
@@ -7,30 +7,30 @@ describe YARD::CLI::Stats do
7
7
  YARD.parse_string <<-eof
8
8
  class A
9
9
  CONST = 1
10
-
10
+
11
11
  def foo; end
12
-
12
+
13
13
  # Documented
14
14
  def bar; end
15
15
  end
16
16
  module B; end
17
17
  eof
18
-
19
- @main_stats =
18
+
19
+ @main_stats =
20
20
  "Files: 1\n" +
21
21
  "Modules: 1 ( 1 undocumented)\n" +
22
22
  "Classes: 1 ( 1 undocumented)\n" +
23
23
  "Constants: 1 ( 1 undocumented)\n" +
24
24
  "Methods: 2 ( 1 undocumented)\n" +
25
25
  " 20.00% documented\n"
26
-
26
+
27
27
  @output = StringIO.new
28
28
  @stats = CLI::Stats.new(false)
29
29
  @stats.stub!(:support_rdoc_document_file!).and_return([])
30
30
  @stats.stub!(:yardopts).and_return([])
31
31
  @stats.stub!(:puts) {|*args| @output << args.join("\n") << "\n" }
32
32
  end
33
-
33
+
34
34
  it "should list undocumented objects with --list-undoc" do
35
35
  @stats.run('--list-undoc')
36
36
  @output.string.should == <<-eof
@@ -44,7 +44,7 @@ A::CONST
44
44
  A#foo
45
45
  eof
46
46
  end
47
-
47
+
48
48
  it "should list no undocumented objects with --list-undoc when objects are undocumented" do
49
49
  Registry.clear
50
50
  YARD.parse_string <<-eof
@@ -59,27 +59,27 @@ eof
59
59
  "Methods: 1 ( 0 undocumented)\n" +
60
60
  " 100.00% documented\n"
61
61
  end
62
-
62
+
63
63
  it "should list undocumented objects in compact mode with --list-undoc --compact" do
64
64
  @stats.run('--list-undoc', '--compact')
65
65
  @output.string.should == <<-eof
66
66
  #{@main_stats}
67
67
  Undocumented Objects:
68
- B ((stdin))
69
- A ((stdin))
70
- A::CONST ((stdin))
71
- A#foo ((stdin))
68
+ B ((stdin):9)
69
+ A ((stdin):1)
70
+ A::CONST ((stdin):2)
71
+ A#foo ((stdin):4)
72
72
  eof
73
73
  end
74
-
74
+
75
75
  it "should still list stats with --quiet" do
76
76
  @stats.run('--quiet')
77
77
  @output.string.should == @main_stats
78
78
  end
79
-
79
+
80
80
  it "should not include public methods in stats with --no-public" do
81
81
  @stats.run('--no-public')
82
- @output.string.should ==
82
+ @output.string.should ==
83
83
  "Files: 1\n" +
84
84
  "Modules: 1 ( 1 undocumented)\n" +
85
85
  "Classes: 1 ( 1 undocumented)\n" +
@@ -10,8 +10,10 @@ describe YARD::CLI::Yardoc do
10
10
  Templates::Engine.stub!(:render)
11
11
  Templates::Engine.stub!(:generate)
12
12
  YARD.stub!(:parse)
13
+ Registry.stub!(:load)
14
+ Registry.stub!(:save)
13
15
  end
14
-
16
+
15
17
  describe 'Defaults' do
16
18
  before do
17
19
  @yardoc = CLI::Yardoc.new
@@ -19,71 +21,75 @@ describe YARD::CLI::Yardoc do
19
21
  @yardoc.stub!(:support_rdoc_document_file!).and_return([])
20
22
  @yardoc.parse_arguments
21
23
  end
22
-
24
+
23
25
  it "should use cache by default" do
24
26
  @yardoc.use_cache.should == false
25
27
  end
26
-
28
+
27
29
  it "print statistics by default" do
28
30
  @yardoc.statistics.should == true
29
31
  end
30
-
32
+
31
33
  it "should generate output by default" do
32
34
  @yardoc.generate.should == true
33
35
  end
34
-
36
+
35
37
  it "should read .yardopts by default" do
36
38
  @yardoc.use_yardopts_file.should == true
37
39
  end
38
-
40
+
39
41
  it "should read .document by default" do
40
42
  @yardoc.use_document_file.should == true
41
43
  end
42
-
44
+
43
45
  it "should use {lib,app}/**/*.rb and ext/**/*.c as default file glob" do
44
46
  @yardoc.files.should == ['{lib,app}/**/*.rb', 'ext/**/*.c']
45
47
  end
46
-
48
+
47
49
  it "should use rdoc as default markup type (but falls back on none)" do
48
- @yardoc.options[:markup].should == :rdoc
50
+ @yardoc.options.markup.should == :rdoc
49
51
  end
50
-
52
+
51
53
  it "should use default as default template" do
52
- @yardoc.options[:template].should == :default
54
+ @yardoc.options.template.should == :default
53
55
  end
54
-
56
+
55
57
  it "should use HTML as default format" do
56
- @yardoc.options[:format].should == :html
58
+ @yardoc.options.format.should == :html
57
59
  end
58
-
60
+
59
61
  it "should use 'Object' as default return type" do
60
- @yardoc.options[:default_return].should == 'Object'
62
+ @yardoc.options.default_return.should == 'Object'
61
63
  end
62
-
64
+
63
65
  it "should not hide void return types by default" do
64
- @yardoc.options[:hide_void_return].should == false
66
+ @yardoc.options.hide_void_return.should == false
65
67
  end
66
-
68
+
67
69
  it "should only show public visibility by default" do
68
70
  @yardoc.visibilities.should == [:public]
69
71
  end
70
-
72
+
71
73
  it "should not list objects by default" do
72
74
  @yardoc.list.should == false
73
75
  end
76
+
77
+ it "should not embed mixins by default" do
78
+ @yardoc.options.embed_mixins.should be_empty
79
+ end
74
80
  end
75
-
81
+
76
82
  describe 'General options' do
77
83
  def self.should_accept(*args, &block)
78
84
  @counter ||= 0
79
85
  @counter += 1
80
86
  counter = @counter
81
- args.each do |arg|
87
+ args.each do |arg|
82
88
  define_method("test_options_#{@counter}", &block)
83
89
  it("should accept #{arg}") { send("test_options_#{counter}", arg) }
84
90
  end
85
91
  end
86
-
92
+
87
93
  should_accept('--single-db') do |arg|
88
94
  @yardoc.parse_arguments(arg)
89
95
  Registry.single_object_db.should == true
@@ -95,17 +101,17 @@ describe YARD::CLI::Yardoc do
95
101
  Registry.single_object_db.should == false
96
102
  Registry.single_object_db = nil
97
103
  end
98
-
104
+
99
105
  should_accept('-c', '--use-cache') do |arg|
100
106
  @yardoc.parse_arguments(arg)
101
107
  @yardoc.use_cache.should == true
102
108
  end
103
-
109
+
104
110
  should_accept('--no-cache') do |arg|
105
111
  @yardoc.parse_arguments(arg)
106
112
  @yardoc.use_cache.should == false
107
113
  end
108
-
114
+
109
115
  should_accept('--yardopts') do |arg|
110
116
  @yardoc = CLI::Yardoc.new
111
117
  @yardoc.use_document_file = false
@@ -150,34 +156,34 @@ describe YARD::CLI::Yardoc do
150
156
  @yardoc.parse_arguments('--document', arg)
151
157
  @yardoc.use_document_file.should == false
152
158
  end
153
-
159
+
154
160
  should_accept('-b', '--db') do |arg|
155
161
  @yardoc.parse_arguments(arg, 'test')
156
162
  Registry.yardoc_file.should == 'test'
157
163
  Registry.yardoc_file = '.yardoc'
158
164
  end
159
-
165
+
160
166
  should_accept('-n', '--no-output') do |arg|
161
167
  Templates::Engine.should_not_receive(:generate)
162
168
  @yardoc.run(arg)
163
169
  end
164
-
170
+
165
171
  should_accept('--exclude') do |arg|
166
172
  YARD.should_receive(:parse).with(['a'], ['nota', 'b'])
167
173
  @yardoc.run(arg, 'nota', arg, 'b', 'a')
168
174
  end
169
-
175
+
170
176
  should_accept('--no-save') do |arg|
171
177
  YARD.should_receive(:parse)
172
178
  Registry.should_not_receive(:save)
173
179
  @yardoc.run(arg)
174
180
  end
175
181
  end
176
-
182
+
177
183
  describe 'Output options' do
178
184
  it "should accept --title" do
179
185
  @yardoc.parse_arguments('--title', 'hello world')
180
- @yardoc.options[:title].should == 'hello world'
186
+ @yardoc.options.title.should == 'hello world'
181
187
  end
182
188
 
183
189
  it "should allow --title to have multiple spaces in .yardopts" do
@@ -185,38 +191,48 @@ describe YARD::CLI::Yardoc do
185
191
  @yardoc.options_file = "test"
186
192
  @yardoc.use_yardopts_file = true
187
193
  @yardoc.run
188
- @yardoc.options[:title].should == "Foo Bar"
194
+ @yardoc.options.title.should == "Foo Bar"
189
195
  end
190
196
 
191
197
  it "should alias --main to the --readme flag" do
192
198
  readme = File.join(File.dirname(__FILE__),'..','..','README.md')
193
199
 
194
200
  @yardoc.parse_arguments('--main', readme)
195
- @yardoc.options[:readme].should == CodeObjects::ExtraFileObject.new(readme, '')
201
+ @yardoc.options.readme.should == CodeObjects::ExtraFileObject.new(readme, '')
196
202
  end
197
203
 
198
204
  it "should select a markup provider when --markup-provider or -mp is set" do
199
205
  @yardoc.parse_arguments("-M", "test")
200
- @yardoc.options[:markup_provider].should == :test
206
+ @yardoc.options.markup_provider.should == :test
201
207
  @yardoc.parse_arguments("--markup-provider", "test2")
202
- @yardoc.options[:markup_provider].should == :test2
208
+ @yardoc.options.markup_provider.should == :test2
203
209
  end
204
-
210
+
205
211
  it "should select a markup format when -m is set" do
206
212
  @yardoc.should_receive(:verify_markup_options).and_return(true)
207
213
  @yardoc.generate = true
208
214
  @yardoc.parse_arguments('-m', 'markdown')
209
- @yardoc.options[:markup].should == :markdown
215
+ @yardoc.options.markup.should == :markdown
210
216
  end
211
217
 
212
218
  it "should accept --default-return" do
213
219
  @yardoc.parse_arguments *%w( --default-return XYZ )
214
- @yardoc.options[:default_return].should == "XYZ"
220
+ @yardoc.options.default_return.should == "XYZ"
215
221
  end
216
222
 
217
223
  it "should allow --hide-void-return to be set" do
218
224
  @yardoc.parse_arguments *%w( --hide-void-return )
219
- @yardoc.options[:hide_void_return].should be_true
225
+ @yardoc.options.hide_void_return.should be_true
226
+ end
227
+
228
+ it "should accept --embed-mixins" do
229
+ @yardoc.parse_arguments *%w( --embed-mixins )
230
+ @yardoc.options.embed_mixins.should == ['*']
231
+ end
232
+
233
+ it "should accept --embed-mixin MODULE" do
234
+ @yardoc.parse_arguments *%w( --embed-mixin MyModule )
235
+ @yardoc.options.embed_mixins.should == ['MyModule']
220
236
  end
221
237
 
222
238
  it "should generate all objects with --use-cache" do
@@ -232,13 +248,13 @@ describe YARD::CLI::Yardoc do
232
248
  CLI::Stats.should_not_receive(:new)
233
249
  @yardoc.run *%w( --no-stats )
234
250
  end
235
-
251
+
236
252
  describe '--asset' do
237
253
  before do
238
254
  @yardoc.generate = true
239
255
  @yardoc.stub!(:run_generate)
240
256
  end
241
-
257
+
242
258
  it "should copy assets to output directory" do
243
259
  FileUtils.should_receive(:cp_r).with('a', 'doc/a')
244
260
  @yardoc.run *%w( --asset a )
@@ -269,14 +285,14 @@ describe YARD::CLI::Yardoc do
269
285
  @yardoc.run *%w( --asset foo:bar )
270
286
  @yardoc.assets.should == {'foo' => 'bar'}
271
287
  end
272
-
288
+
273
289
  it "should not put from inside of to/ if from is a directory" do
274
290
  begin
275
291
  from = 'tmp_foo'
276
292
  to = 'tmp_bar'
277
293
  full_to = File.join(File.dirname(__FILE__), to)
278
294
  FileUtils.mkdir_p(from)
279
- @yardoc.options[:serializer].basepath = File.dirname(__FILE__)
295
+ @yardoc.options.serializer.basepath = File.dirname(__FILE__)
280
296
  @yardoc.run("--asset", "#{from}:#{to}")
281
297
  @yardoc.run("--asset", "#{from}:#{to}")
282
298
  File.directory?(full_to).should be_true
@@ -288,24 +304,24 @@ describe YARD::CLI::Yardoc do
288
304
  end
289
305
  end
290
306
  end
291
-
307
+
292
308
  describe '--no-private option' do
293
309
  it "should accept --no-private" do
294
310
  obj = mock(:object)
295
311
  obj.should_receive(:tag).ordered.with(:private).and_return(true)
296
312
  @yardoc.parse_arguments *%w( --no-private )
297
- @yardoc.options[:verifier].call(obj).should == false
313
+ @yardoc.options.verifier.call(obj).should == false
298
314
  end
299
315
 
300
316
  it "should hide object if namespace is @private with --no-private" do
301
317
  ns = mock(:namespace)
302
318
  ns.stub!(:type).and_return(:module)
303
- ns.should_receive(:tag).ordered.with(:private).and_return(true)
319
+ ns.should_receive(:tag).with(:private).and_return(true)
304
320
  obj = mock(:object)
305
321
  obj.stub!(:namespace).and_return(ns)
306
- obj.should_receive(:tag).ordered.with(:private).and_return(false)
322
+ obj.should_receive(:tag).with(:private).and_return(false)
307
323
  @yardoc.parse_arguments *%w( --no-private )
308
- @yardoc.options[:verifier].call(obj).should == false
324
+ @yardoc.options.verifier.call(obj).should == false
309
325
  end
310
326
 
311
327
  it "should not call #tag on namespace if namespace is proxy with --no-private" do
@@ -318,7 +334,7 @@ describe YARD::CLI::Yardoc do
318
334
  obj.stub!(:visibility).and_return(:public)
319
335
  obj.should_receive(:tag).ordered.with(:private).and_return(false)
320
336
  @yardoc.parse_arguments *%w( --no-private )
321
- @yardoc.options[:verifier].call(obj).should == true
337
+ @yardoc.options.verifier.call(obj).should == true
322
338
  end
323
339
 
324
340
  # @bug gh-197
@@ -328,12 +344,12 @@ describe YARD::CLI::Yardoc do
328
344
  foobar = Registry.at('Foo::Bar')
329
345
  foobar.namespace.type = :module
330
346
  @yardoc.parse_arguments *%w( --no-private )
331
- @yardoc.options[:verifier].call(foobar).should == true
347
+ @yardoc.options.verifier.call(foobar).should == true
332
348
  end
333
-
349
+
334
350
  it "should not call #tag on proxy object" do # @bug gh-197
335
351
  @yardoc.parse_arguments *%w( --no-private )
336
- @yardoc.options[:verifier].call(P('ProxyClass')).should == true
352
+ @yardoc.options.verifier.call(P('ProxyClass')).should == true
337
353
  end
338
354
 
339
355
  it "should hide methods inside a 'private' class/module with --no-private" do
@@ -345,22 +361,22 @@ describe YARD::CLI::Yardoc do
345
361
  end
346
362
  eof
347
363
  @yardoc.parse_arguments *%w( --no-private )
348
- @yardoc.options[:verifier].call(Registry.at('ABC')).should be_false
349
- @yardoc.options[:verifier].call(Registry.at('ABC#foo')).should be_false
364
+ @yardoc.options.verifier.call(Registry.at('ABC')).should be_false
365
+ @yardoc.options.verifier.call(Registry.at('ABC#foo')).should be_false
350
366
  end
351
367
  end
352
-
368
+
353
369
  describe '.yardopts and .document handling' do
354
370
  before do
355
371
  @yardoc.use_yardopts_file = true
356
372
  end
357
-
373
+
358
374
  it "should search for and use yardopts file specified by #options_file" do
359
375
  File.should_receive(:read_binary).with("test").and_return("-o \n\nMYPATH\nFILE1 FILE2")
360
376
  @yardoc.use_document_file = false
361
377
  @yardoc.options_file = "test"
362
378
  @yardoc.run
363
- @yardoc.options[:serializer].options[:basepath].should == "MYPATH"
379
+ @yardoc.options.serializer.options[:basepath].should == "MYPATH"
364
380
  @yardoc.files.should == ["FILE1", "FILE2"]
365
381
  end
366
382
 
@@ -375,7 +391,7 @@ describe YARD::CLI::Yardoc do
375
391
  it "should allow opts specified in command line to override yardopts file" do
376
392
  File.should_receive(:read_binary).with(".yardopts").and_return("-o NOTMYPATH")
377
393
  @yardoc.run("-o", "MYPATH", "FILE")
378
- @yardoc.options[:serializer].options[:basepath].should == "MYPATH"
394
+ @yardoc.options.serializer.options[:basepath].should == "MYPATH"
379
395
  @yardoc.files.should == ["FILE"]
380
396
  end
381
397
 
@@ -384,28 +400,28 @@ describe YARD::CLI::Yardoc do
384
400
  @yardoc.use_document_file = true
385
401
  @yardoc.stub!(:support_rdoc_document_file!).and_return(["FILE2", "FILE3"])
386
402
  @yardoc.run("-o", "MYPATH", "FILE1")
387
- @yardoc.options[:serializer].options[:basepath].should == "MYPATH"
403
+ @yardoc.options.serializer.options[:basepath].should == "MYPATH"
388
404
  @yardoc.files.should == ["FILE2", "FILE3", "FILE1"]
389
405
  end
390
406
  end
391
-
407
+
392
408
  describe 'Query options' do
393
409
  before do
394
410
  Registry.clear
395
411
  end
396
-
412
+
397
413
  it "should setup visibility rules as verifier" do
398
414
  methobj = CodeObjects::MethodObject.new(:root, :test) {|o| o.visibility = :private }
399
415
  File.should_receive(:read_binary).with("test").and_return("--private")
400
416
  @yardoc.use_yardopts_file = true
401
417
  @yardoc.options_file = "test"
402
418
  @yardoc.run
403
- @yardoc.options[:verifier].call(methobj).should be_true
419
+ @yardoc.options.verifier.call(methobj).should be_true
404
420
  end
405
421
 
406
422
  it "should accept a --query" do
407
423
  @yardoc.parse_arguments *%w( --query @return )
408
- @yardoc.options[:verifier].should be_a(Verifier)
424
+ @yardoc.options.verifier.should be_a(Verifier)
409
425
  end
410
426
 
411
427
  it "should accept multiple --query arguments" do
@@ -413,11 +429,11 @@ describe YARD::CLI::Yardoc do
413
429
  obj.should_receive(:tag).ordered.with('return').and_return(true)
414
430
  obj.should_receive(:tag).ordered.with('tag').and_return(false)
415
431
  @yardoc.parse_arguments *%w( --query @return --query @tag )
416
- @yardoc.options[:verifier].should be_a(Verifier)
417
- @yardoc.options[:verifier].call(obj).should == false
432
+ @yardoc.options.verifier.should be_a(Verifier)
433
+ @yardoc.options.verifier.call(obj).should == false
418
434
  end
419
435
  end
420
-
436
+
421
437
  describe 'Extra file arguments' do
422
438
  it "should accept extra files if specified after '-' with source files" do
423
439
  Dir.should_receive(:glob).with('README*').and_return([])
@@ -427,8 +443,8 @@ describe YARD::CLI::Yardoc do
427
443
  File.should_receive(:read).with('extra_file2').and_return('')
428
444
  @yardoc.parse_arguments *%w( file1 file2 - extra_file1 extra_file2 )
429
445
  @yardoc.files.should == %w( file1 file2 )
430
- @yardoc.options[:files].should ==
431
- [CodeObjects::ExtraFileObject.new('extra_file1', ''),
446
+ @yardoc.options.files.should ==
447
+ [CodeObjects::ExtraFileObject.new('extra_file1', ''),
432
448
  CodeObjects::ExtraFileObject.new('extra_file2', '')]
433
449
  end
434
450
 
@@ -436,7 +452,7 @@ describe YARD::CLI::Yardoc do
436
452
  Dir.should_receive(:glob).with('README*').and_return([])
437
453
  @yardoc.parse_arguments *%w( - LICENSE )
438
454
  @yardoc.files.should == %w( {lib,app}/**/*.rb ext/**/*.c )
439
- @yardoc.options[:files].should == [CodeObjects::ExtraFileObject.new('LICENSE', '')]
455
+ @yardoc.options.files.should == [CodeObjects::ExtraFileObject.new('LICENSE', '')]
440
456
  end
441
457
 
442
458
  it "should accept globs as extra files" do
@@ -448,8 +464,8 @@ describe YARD::CLI::Yardoc do
448
464
  File.should_receive(:file?).with('b.txt').and_return(true)
449
465
  @yardoc.parse_arguments *%w( file1 file2 - *.txt )
450
466
  @yardoc.files.should == %w( file1 file2 )
451
- @yardoc.options[:files].should ==
452
- [CodeObjects::ExtraFileObject.new('a.txt', ''),
467
+ @yardoc.options.files.should ==
468
+ [CodeObjects::ExtraFileObject.new('a.txt', ''),
453
469
  CodeObjects::ExtraFileObject.new('b.txt', '')]
454
470
  end
455
471
 
@@ -462,30 +478,41 @@ describe YARD::CLI::Yardoc do
462
478
  log.should_receive(:warn).with(/Could not find readme file: UNKNOWN/)
463
479
  @yardoc.parse_arguments *%w( -r UNKNOWN )
464
480
  end
465
-
481
+
466
482
  it "should use first file as readme if no readme is specified when using --one-file" do
467
483
  Dir.should_receive(:glob).with('README*').and_return []
468
484
  Dir.should_receive(:glob).with('lib/*.rb').and_return(['lib/foo.rb'])
469
485
  File.should_receive(:read).with('lib/foo.rb').and_return('')
470
486
  @yardoc.parse_arguments *%w( --one-file lib/*.rb )
471
- @yardoc.options[:readme].should == CodeObjects::ExtraFileObject.new('lib/foo.rb', '')
487
+ @yardoc.options.readme.should == CodeObjects::ExtraFileObject.new('lib/foo.rb', '')
472
488
  end
473
-
489
+
474
490
  it "should use readme it exists when using --one-file" do
475
491
  Dir.should_receive(:glob).with('README*').and_return ['README']
476
492
  File.should_receive(:read).with('README').and_return('')
477
493
  @yardoc.parse_arguments *%w( --one-file lib/*.rb )
478
- @yardoc.options[:readme].should == CodeObjects::ExtraFileObject.new('README', '')
479
- end
494
+ @yardoc.options.readme.should == CodeObjects::ExtraFileObject.new('README', '')
495
+ end
496
+
497
+ it "should not allow US-ASCII charset when using --one-file" do
498
+ ienc = Encoding.default_internal
499
+ eenc = Encoding.default_external
500
+ log.should_receive(:warn).with(/not compatible with US-ASCII.*using ASCII-8BIT/)
501
+ @yardoc.parse_arguments *%w( --one-file --charset us-ascii )
502
+ Encoding.default_internal.name.should == 'ASCII-8BIT'
503
+ Encoding.default_external.name.should == 'ASCII-8BIT'
504
+ Encoding.default_internal = ienc
505
+ Encoding.default_external = eenc
506
+ end if defined?(::Encoding)
480
507
  end
481
-
508
+
482
509
  describe 'Source file arguments' do
483
510
  it "should accept no params and parse {lib,app}/**/*.rb ext/**/*.c" do
484
511
  @yardoc.parse_arguments
485
512
  @yardoc.files.should == %w( {lib,app}/**/*.rb ext/**/*.c )
486
513
  end
487
514
  end
488
-
515
+
489
516
  describe 'Tags options' do
490
517
  def tag_created(switch, factory_method)
491
518
  visible_tags = mock(:visible_tags)
@@ -496,7 +523,7 @@ describe YARD::CLI::Yardoc do
496
523
  Tags::Library.should_receive(:visible_tags).at_least(1).times.and_return(visible_tags)
497
524
  @yardoc.parse_arguments("--#{switch}-tag", 'foo')
498
525
  end
499
-
526
+
500
527
  def tag_hidden(tag)
501
528
  visible_tags = mock(:visible_tags)
502
529
  visible_tags.should_receive(:|).ordered.with([tag])
@@ -515,7 +542,7 @@ describe YARD::CLI::Yardoc do
515
542
  Tags::Library.should_receive(:define_tag).with('Foo', :foo, nil)
516
543
  @yardoc.parse_arguments('--tag', 'foo')
517
544
  end
518
-
545
+
519
546
  it "should only list tag once if declared twice" do
520
547
  visible_tags = []
521
548
  Tags::Library.stub!(:define_tag)
@@ -540,28 +567,28 @@ describe YARD::CLI::Yardoc do
540
567
  it "should accept --title-tag" do
541
568
  tag_created 'title', :with_title_and_text
542
569
  end
543
-
570
+
544
571
  it "should accept --hide-tag before tag is listed" do
545
572
  tag_hidden(:anewfoo)
546
573
  @yardoc.parse_arguments('--hide-tag', 'anewfoo', '--tag', 'anewfoo')
547
574
  end
548
-
575
+
549
576
  it "should accept --hide-tag after tag is listed" do
550
577
  tag_hidden(:anewfoo2)
551
578
  @yardoc.parse_arguments('--tag', 'anewfoo2', '--hide-tag', 'anewfoo2')
552
579
  end
553
-
580
+
554
581
  it "should accept --transitive-tag" do
555
582
  @yardoc.parse_arguments('--transitive-tag', 'foo')
556
583
  Tags::Library.transitive_tags.should include(:foo)
557
584
  end
558
585
  end
559
-
586
+
560
587
  describe 'Safe mode' do
561
588
  before do
562
589
  YARD::Config.stub!(:options).and_return(:safe_mode => true)
563
590
  end
564
-
591
+
565
592
  it "should not allow --load or -e in safe mode" do
566
593
  @yardoc.should_not_receive(:require)
567
594
  @yardoc.run('--load', 'foo')
@@ -570,36 +597,36 @@ describe YARD::CLI::Yardoc do
570
597
 
571
598
  it "should not allow --query in safe mode" do
572
599
  @yardoc.run('--query', 'foo')
573
- @yardoc.options[:verifier].expressions.should_not include("foo")
600
+ @yardoc.options.verifier.expressions.should_not include("foo")
574
601
  end
575
-
602
+
576
603
  it "should not allow modifying the template paths" do
577
604
  YARD::Templates::Engine.should_not_receive(:register_template_path)
578
605
  @yardoc.run('-p', 'foo')
579
606
  @yardoc.run('--template-path', 'foo')
580
607
  end
581
608
  end
582
-
609
+
583
610
  describe 'Markup Loading' do
584
611
  it "should load rdoc markup if no markup is provided" do
585
612
  @yardoc.generate = true
586
613
  @yardoc.run
587
- @yardoc.options[:markup].should == :rdoc
614
+ @yardoc.options.markup.should == :rdoc
588
615
  end
589
-
616
+
590
617
  it "should load rdoc markup even when no output is specified" do
591
618
  @yardoc.parse_arguments('--no-output')
592
- @yardoc.options[:markup].should == :rdoc
619
+ @yardoc.options.markup.should == :rdoc
593
620
  end
594
-
621
+
595
622
  it "should warn if rdoc cannot be loaded and fallback to :none" do
596
623
  mod = YARD::Templates::Helpers::MarkupHelper
597
624
  mod.clear_markup_cache
598
625
  mod.const_get(:MARKUP_PROVIDERS).should_receive(:[]).with(:rdoc).and_return([{:lib => 'INVALID'}])
599
626
  log.should_receive(:warn).with(/Could not load default RDoc formatter/)
600
- @yardoc.stub(:generate) { @yardoc.options[:files] = []; true }
627
+ @yardoc.stub(:generate) { @yardoc.options.files = []; true }
601
628
  @yardoc.run
602
- @yardoc.options[:markup].should == :none
629
+ @yardoc.options.markup.should == :none
603
630
  mod.clear_markup_cache
604
631
  end
605
632
 
@@ -609,7 +636,7 @@ describe YARD::CLI::Yardoc do
609
636
  mod.const_get(:MARKUP_PROVIDERS).should_receive(:[]).with(:markdown).and_return([{:lib => 'INVALID'}])
610
637
  log.should_receive(:error).with(/Missing 'INVALID' gem for Markdown formatting/)
611
638
  files = [CodeObjects::ExtraFileObject.new('test.md', '')]
612
- @yardoc.stub(:generate) { @yardoc.options[:files] = files; true }
639
+ @yardoc.stub(:generate) { @yardoc.options.files = files; true }
613
640
  @yardoc.run
614
641
  mod.clear_markup_cache
615
642
  end
@@ -620,12 +647,12 @@ describe YARD::CLI::Yardoc do
620
647
  mod.const_get(:MARKUP_PROVIDERS).should_receive(:[]).with(:markdown).and_return([{:lib => 'INVALID'}])
621
648
  log.should_receive(:error).with(/Missing 'INVALID' gem for Markdown formatting/)
622
649
  files = [CodeObjects::ExtraFileObject.new('test', '# @markup markdown')]
623
- @yardoc.stub(:generate) { @yardoc.options[:files] = files; true }
650
+ @yardoc.stub(:generate) { @yardoc.options.files = files; true }
624
651
  @yardoc.run
625
652
  mod.clear_markup_cache
626
653
  end
627
654
  end
628
-
655
+
629
656
  describe '#run' do
630
657
  it "should parse_arguments if run() is called" do
631
658
  @yardoc.should_receive(:parse_arguments)