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
@@ -1,41 +1,41 @@
1
1
  class Testing
2
2
  # Ignore yields outside methods
3
3
  raise NoMethodError, "reason"
4
-
4
+
5
5
  # Should document this
6
6
  def mymethod
7
7
  raise ArgumentError, "Argument is missing"
8
8
  end
9
-
9
+
10
10
  # Don't document this
11
11
  def mymethod2
12
- raise(a)
12
+ raise(a)
13
13
  end
14
-
14
+
15
15
  # Don't document this (docstring takes precedence)
16
16
  # @raise [A]
17
- def mymethod3
17
+ def mymethod3
18
18
  raise SomethingElse
19
19
  end
20
-
20
+
21
21
  # Only document the first one (limitation of exc handler)
22
- def mymethod4
22
+ def mymethod4
23
23
  raise(A)
24
24
  raise B, "Argument", somethingelse
25
25
  end
26
-
26
+
27
27
  def mymethod5
28
28
  raise YARD::Parser::UndocumentableError
29
29
  end
30
-
30
+
31
31
  def mymethod6
32
32
  raise YARD::Handlers.constants("test")
33
33
  end
34
-
34
+
35
35
  def mymethod7
36
36
  raise MethodCall('argument')
37
37
  end
38
-
38
+
39
39
  def mymethod8
40
40
  raise ExceptionClass.new('blah')
41
41
  end
@@ -44,15 +44,15 @@ class Testing
44
44
  obj.raise IgnoreMe
45
45
  obj.raise(IgnoreMe)
46
46
  end
47
-
47
+
48
48
  def mymethod10
49
49
  raise ArgumentError 'Message' # actually a method call
50
50
  end
51
-
51
+
52
52
  def mymethod11
53
53
  raise foo('bar')
54
54
  end
55
-
55
+
56
56
  def mymethod12
57
57
  raise
58
58
  end
@@ -3,8 +3,8 @@ def a
3
3
  # ignore this
4
4
  def b; end
5
5
  end
6
-
6
+
7
7
  # don't ignore these even though we know they're not executed
8
8
  def c; end if false
9
9
  def d; end unless true
10
- end
10
+ end
@@ -13,7 +13,7 @@ class Foo
13
13
  def initialize; end
14
14
 
15
15
  def ==(other)
16
- 'hello'
16
+ 'hello'
17
17
  end
18
18
  def /(other) 'hi' end
19
19
 
@@ -22,24 +22,24 @@ class Foo
22
22
  def method1
23
23
  def dynamic; end
24
24
  end
25
-
25
+
26
26
  def self.method2; end
27
27
 
28
28
  # Docstring
29
29
  def String :: hello; "" end
30
-
30
+
31
31
  def self.new() end
32
32
 
33
33
  def [](key = 'default') puts key end
34
34
  def []=(key, value) end
35
- def
35
+ def
36
36
  allowed?
37
37
  end
38
38
 
39
39
  def ` param; end
40
40
  def /(x = File.new('x', 'w'), y = 2) end
41
41
  def |; end; def =~ ()
42
- def -@; end;
42
+ def -@; end;
43
43
  end
44
44
  def *(o) def +@; end
45
45
  def ~@
@@ -47,7 +47,7 @@ end
47
47
  def &(o) end
48
48
  def %(o) end
49
49
  def ^(o) end
50
-
50
+
51
51
  def optsmeth(x, opts = {}) end
52
52
  def blockmeth(x, &block) end
53
53
 
@@ -91,35 +91,35 @@ def CONST2.meth2_on_const; end
91
91
 
92
92
  class D
93
93
  alias b a
94
-
94
+
95
95
  # foo bar
96
96
  def a; end
97
97
  end
98
98
 
99
99
  class E
100
- # @macro prop
101
- # @method $1(value)
100
+ # @!macro prop
101
+ # @!method $1(value)
102
102
  # $3
103
103
  # @return [$2]
104
104
  def self.property(name, ret_type, docstring)
105
105
  end
106
-
106
+
107
107
  property :foo, String, "create a foo"
108
-
109
- # @macro xyz
110
- # @method $1
108
+
109
+ # @!macro xyz
110
+ # @!method $1
111
111
  def xyz; end
112
-
112
+
113
113
  xyz :a
114
114
  end
115
115
 
116
116
  module F
117
117
  class A
118
118
  def foo; end
119
-
119
+
120
120
  def end
121
121
  end
122
-
122
+
123
123
  # PASS
124
124
  def bar; end
125
125
  end
@@ -1,6 +1,6 @@
1
1
  module A; end
2
- module B;
3
- module C; end
2
+ module B;
3
+ module C; end
4
4
  module D; end
5
5
  end
6
6
 
@@ -19,15 +19,19 @@ module Y
19
19
  class << self; include A; end
20
20
  end
21
21
 
22
+ module Z
23
+ include A, B
24
+ end
25
+
22
26
  module ABC
23
27
  module FOO; end
24
28
  module DEF
25
29
  module FOO
26
30
  include ABC::FOO
27
31
  end
28
-
32
+
29
33
  module BAR
30
34
  include ABC::BAR
31
35
  end
32
36
  end
33
- end
37
+ end
@@ -3,6 +3,6 @@ module A
3
3
  class B; end
4
4
  module C; end
5
5
  module D; end
6
-
6
+
7
7
  private_constant :Foo, 'B', C
8
8
  end
@@ -1,6 +1,6 @@
1
1
  class Testing
2
2
  def pub; end
3
-
3
+
4
4
  private
5
5
 
6
6
  def priv; end
@@ -17,11 +17,11 @@ class Testing
17
17
  def pub2; end
18
18
 
19
19
  protected :notpriv, 'notpriv2', :notpriv?
20
-
20
+
21
21
  private name
22
22
  private *argument
23
23
  private *(method_call)
24
-
24
+
25
25
  def Foo; end
26
26
  private :Foo
27
27
  end
@@ -1,12 +1,12 @@
1
1
  class Testing
2
2
  # Ignore yields outside methods
3
- yield x, y, z
4
-
3
+ yield x, y, z
4
+
5
5
  # Should document this
6
6
  def mymethod
7
7
  yield
8
8
  end
9
-
9
+
10
10
  # Has yield and yieldparam documentation
11
11
  # @yield [a, b] Blah
12
12
  # @yieldparam a Blah
@@ -14,42 +14,41 @@ class Testing
14
14
  def mymethod2
15
15
  yield(b, a) # Yield something else
16
16
  end
17
-
17
+
18
18
  # Has yield documentation only
19
19
  # @yield [a, b]
20
- def mymethod3
20
+ def mymethod3
21
21
  yield self # Should not be changed
22
22
  end
23
-
23
+
24
24
  # Has yieldparam documentation only
25
25
  # @yieldparam _self BLAH
26
26
  def mymethod4
27
27
  yield self
28
28
  end
29
-
29
+
30
30
  # Some weird possibilities..
31
31
  # Document it all.
32
-
33
-
32
+
33
+
34
34
  def mymethod5
35
35
  yield :a, b, self, File.read('file', 'w'), CONSTANT if x == 2
36
36
  end
37
-
37
+
38
38
  def mymethod6
39
39
  yield(b, a)
40
40
  end
41
-
41
+
42
42
  def mymethod7
43
43
  yield a
44
44
  yield b
45
45
  end
46
-
46
+
47
47
  def mymethod8
48
48
  yield self
49
49
  end
50
-
50
+
51
51
  def mymethod9
52
52
  yield super
53
53
  end
54
54
  end
55
-
@@ -2,25 +2,25 @@ require File.dirname(__FILE__) + '/spec_helper'
2
2
 
3
3
  describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ExceptionHandler" do
4
4
  before(:all) { parse_file :exception_handler_001, __FILE__ }
5
-
5
+
6
6
  it "should not document an exception outside of a method" do
7
7
  P('Testing').has_tag?(:raise).should == false
8
8
  end
9
-
9
+
10
10
  it "should document a valid raise" do
11
11
  P('Testing#mymethod').tag(:raise).types.should == ['ArgumentError']
12
12
  end
13
-
13
+
14
14
  it "should only document non-dynamic raises" do
15
15
  P('Testing#mymethod2').tag(:raise).should be_nil
16
16
  P('Testing#mymethod6').tag(:raise).should be_nil
17
17
  P('Testing#mymethod7').tag(:raise).should be_nil
18
18
  end
19
-
19
+
20
20
  it "should treat ConstantName.new as a valid exception class" do
21
21
  P('Testing#mymethod8').tag(:raise).types.should == ['ExceptionClass']
22
22
  end
23
-
23
+
24
24
  it "should not document a method with an existing @raise tag" do
25
25
  P('Testing#mymethod3').tag(:raise).types.should == ['A']
26
26
  end
@@ -28,20 +28,20 @@ describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ExceptionHandl
28
28
  it "should only document the first raise message of a method (limitation of exception handler)" do
29
29
  P('Testing#mymethod4').tag(:raise).types.should == ['A']
30
30
  end
31
-
31
+
32
32
  it "should handle complex class names" do
33
33
  P('Testing#mymethod5').tag(:raise).types.should == ['YARD::Parser::UndocumentableError']
34
34
  end
35
-
35
+
36
36
  it "should ignore any raise calls on a receiver" do
37
37
  P('Testing#mymethod9').tag(:raise).should be_nil
38
38
  end
39
-
39
+
40
40
  it "should handle raise expressions that are method calls" do
41
41
  P('Testing#mymethod10').tag(:raise).should be_nil
42
42
  P('Testing#mymethod11').tag(:raise).should be_nil
43
43
  end
44
-
44
+
45
45
  it "should ignore empty raise call" do
46
46
  P('Testing#mymethod12').tag(:raise).should be_nil
47
47
  end
@@ -12,11 +12,11 @@ describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ExtendHandler"
12
12
  Registry.at(:C).class_mixins.should == [P(:C)]
13
13
  Registry.at(:C).instance_mixins.should be_empty
14
14
  end
15
-
15
+
16
16
  it "should extend module with correct namespace" do
17
17
  Registry.at('Q::R::S').class_mixins.first.path.should == 'A'
18
18
  end
19
-
19
+
20
20
  it "should not allow extending self if object is a class" do
21
21
  undoc_error "class Foo; extend self; end"
22
22
  end
@@ -2,123 +2,123 @@ require File.dirname(__FILE__) + '/spec_helper'
2
2
 
3
3
  include Parser::Ruby::Legacy
4
4
 
5
- describe YARD::Handlers::Ruby::Legacy::Base, "#tokval" do
6
-
7
- before { @handler = Handlers::Ruby::Legacy::Base.new(nil, nil) }
8
-
5
+ describe YARD::Handlers::Ruby::Legacy::Base, "#tokval" do
6
+
7
+ before { @handler = Handlers::Ruby::Legacy::Base.new(nil, nil) }
8
+
9
9
  def tokval(code, *types)
10
10
  @handler.send(:tokval, TokenList.new(code).first, *types)
11
11
  end
12
-
12
+
13
13
  it "should return the String's value without quotes" do
14
14
  tokval('"hello"').should == "hello"
15
15
  end
16
-
16
+
17
17
  it "should not allow interpolated strings with TkSTRING" do
18
18
  tokval('"#{c}"', RubyToken::TkSTRING).should be_nil
19
19
  end
20
-
20
+
21
21
  it "should return a Symbol's value as a String (as if it was done via :name.to_sym)" do
22
22
  tokval(':sym').should == :sym
23
23
  end
24
-
24
+
25
25
  it "should return nil for any non accepted type" do
26
26
  tokval('identifier').should be_nil
27
27
  tokval(':sym', RubyToken::TkId).should be_nil
28
28
  end
29
-
29
+
30
30
  it "should accept TkVal tokens by default" do
31
31
  tokval('2.5').should == 2.5
32
32
  tokval(':sym').should == :sym
33
33
  end
34
-
34
+
35
35
  it "should accept any ID type if TkId is set" do
36
36
  tokval('variable', RubyToken::TkId).should == "variable"
37
37
  tokval('CONSTANT', RubyToken::TkId).should == "CONSTANT"
38
38
  end
39
-
40
- it "should allow extra token types to be accepted" do
39
+
40
+ it "should allow extra token types to be accepted" do
41
41
  tokval('2.5', RubyToken::TkFLOAT).should == 2.5
42
42
  tokval('2', RubyToken::TkFLOAT).should be_nil
43
43
  tokval(':symbol', RubyToken::TkFLOAT).should be_nil
44
44
  end
45
-
45
+
46
46
  it "should allow :string for any string type" do
47
47
  tokval('"hello"', :string).should == "hello"
48
48
  tokval('"#{c}"', :string).should == '#{c}'
49
49
  end
50
-
50
+
51
51
  it "should not include interpolated strings when using :attr" do
52
52
  tokval('"#{c}"', :attr).should be_nil
53
53
  end
54
-
54
+
55
55
  it "should allow any number type with :number" do
56
56
  tokval('2.5', :number).should == 2.5
57
57
  tokval('2', :number).should == 2
58
58
  end
59
-
59
+
60
60
  it "should should allow method names with :identifier" do
61
61
  tokval('methodname?', :identifier).should == "methodname?"
62
62
  end
63
-
63
+
64
64
  #it "should obey documentation expectations" do docspec end
65
65
  end
66
66
 
67
- describe YARD::Handlers::Base, "#tokval_list" do
68
- before { @handler = Handlers::Ruby::Legacy::Base.new(nil, nil) }
69
-
67
+ describe YARD::Handlers::Base, "#tokval_list" do
68
+ before { @handler = Handlers::Ruby::Legacy::Base.new(nil, nil) }
69
+
70
70
  def tokval_list(code, *types)
71
71
  @handler.send(:tokval_list, TokenList.new(code), *types)
72
72
  end
73
-
73
+
74
74
  it "should return the list of tokvalues" do
75
75
  tokval_list(":a, :b, \"\#{c}\", 'd'", :attr).should == [:a, :b, 'd']
76
- tokval_list(":a, :b, File.read(\"\#{c}\", ['w']), :d",
76
+ tokval_list(":a, :b, File.read(\"\#{c}\", ['w']), :d",
77
77
  RubyToken::Token).should == [:a, :b, 'File.read("#{c}", [\'w\'])', :d]
78
78
  end
79
-
79
+
80
80
  it "should try to skip any invalid tokens" do
81
81
  tokval_list(":a, :b, \"\#{c}\", :d", :attr).should == [:a, :b, :d]
82
82
  tokval_list(":a, :b, File.read(\"\#{c}\", 'w', File.open { }), :d", :attr).should == [:a, :b, :d]
83
- tokval_list("CONST1, identifier, File.read(\"\#{c}\", 'w', File.open { }), CONST2",
83
+ tokval_list("CONST1, identifier, File.read(\"\#{c}\", 'w', File.open { }), CONST2",
84
84
  RubyToken::TkId).should == ['CONST1', 'identifier', 'CONST2']
85
85
  end
86
-
86
+
87
87
  it "should ignore a token if another invalid token is read before a comma" do
88
88
  tokval_list(":a, :b XYZ, :c", RubyToken::TkSYMBOL).should == [:a, :c]
89
89
  end
90
-
90
+
91
91
  it "should stop on most keywords" do
92
92
  tokval_list(':a rescue :x == 5', RubyToken::Token).should == [:a]
93
93
  end
94
-
94
+
95
95
  it "should handle ignore parentheses that begin the token list" do
96
96
  tokval_list('(:a, :b, :c)', :attr).should == [:a, :b, :c]
97
97
  end
98
-
98
+
99
99
  it "should end when a closing parenthesis was found" do
100
100
  tokval_list(':a, :b, :c), :d', :attr).should == [:a, :b, :c]
101
101
  end
102
-
102
+
103
103
  it "should ignore parentheses around items in a list" do
104
104
  tokval_list(':a, (:b), :c, (:d TEST), :e, [:f], :g', :attr).should == [:a, :b, :c, :e, :g]
105
105
  tokval_list(':a, (((:f)))', :attr).should == [:a, :f]
106
106
  tokval_list(':a, ([:f]), :c)', RubyToken::Token).should == [:a, '[:f]', :c]
107
107
  end
108
-
108
+
109
109
  it "should not stop on a true/false/self keyword (cannot handle nil)" do
110
- tokval_list(':a, true, :b, self, false, :c, nil, File, super, if, XYZ',
110
+ tokval_list(':a, true, :b, self, false, :c, nil, File, super, if, XYZ',
111
111
  RubyToken::Token).should == [:a, true, :b, 'self', false, :c, 'File', 'super']
112
112
  end
113
-
113
+
114
114
  it "should ignore invalid commas" do
115
115
  tokval_list(":a, :b, , :d").should == [:a, :b, :d]
116
116
  end
117
-
117
+
118
118
  it "should return an empty list if no matches were found" do
119
119
  tokval_list('attr_accessor :x').should == []
120
120
  end
121
-
121
+
122
122
  it "should treat {} as a valid value" do
123
123
  # FIXME: tokval_list destroys extra spaces surrounding the '=' in
124
124
  # this situation. This is technically a design flaw of the