deg-yard 0.8.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. data/.travis.yml +39 -0
  2. data/.yardopts +25 -0
  3. data/.yardopts_guide +19 -0
  4. data/.yardopts_i18n +22 -0
  5. data/Gemfile +35 -0
  6. data/LEGAL +66 -0
  7. data/LICENSE +22 -0
  8. data/README.md +609 -0
  9. data/Rakefile +66 -0
  10. data/benchmarks/builtins_vs_eval.rb +23 -0
  11. data/benchmarks/concat_vs_join.rb +12 -0
  12. data/benchmarks/erb_vs_erubis.rb +53 -0
  13. data/benchmarks/format_args.rb +46 -0
  14. data/benchmarks/generation.rb +37 -0
  15. data/benchmarks/marshal_vs_dbm.rb +63 -0
  16. data/benchmarks/parsing.rb +46 -0
  17. data/benchmarks/pathname_vs_string.rb +50 -0
  18. data/benchmarks/rdoc_vs_yardoc.rb +10 -0
  19. data/benchmarks/registry_store_types.rb +48 -0
  20. data/benchmarks/ri_vs_yri.rb +18 -0
  21. data/benchmarks/ripper_parser.rb +12 -0
  22. data/benchmarks/splat_vs_flatten.rb +12 -0
  23. data/benchmarks/template_erb.rb +22 -0
  24. data/benchmarks/template_format.rb +6 -0
  25. data/benchmarks/template_profile.rb +17 -0
  26. data/benchmarks/yri_cache.rb +19 -0
  27. data/bin/yard +12 -0
  28. data/bin/yardoc +12 -0
  29. data/bin/yri +12 -0
  30. data/docs/CodeObjects.md +115 -0
  31. data/docs/GettingStarted.md +592 -0
  32. data/docs/Handlers.md +152 -0
  33. data/docs/Overview.md +61 -0
  34. data/docs/Parser.md +191 -0
  35. data/docs/Tags.md +282 -0
  36. data/docs/TagsArch.md +123 -0
  37. data/docs/Templates.md +496 -0
  38. data/docs/WhatsNew.md +1244 -0
  39. data/docs/images/code-objects-class-diagram.png +0 -0
  40. data/docs/images/handlers-class-diagram.png +0 -0
  41. data/docs/images/overview-class-diagram.png +0 -0
  42. data/docs/images/parser-class-diagram.png +0 -0
  43. data/docs/images/tags-class-diagram.png +0 -0
  44. data/docs/templates/default/fulldoc/html/full_list_tag.erb +7 -0
  45. data/docs/templates/default/fulldoc/html/setup.rb +6 -0
  46. data/docs/templates/default/layout/html/setup.rb +8 -0
  47. data/docs/templates/default/layout/html/tag_list.erb +11 -0
  48. data/docs/templates/default/yard_tags/html/list.erb +18 -0
  49. data/docs/templates/default/yard_tags/html/setup.rb +27 -0
  50. data/docs/templates/plugin.rb +65 -0
  51. data/lib/rubygems_plugin.rb +4 -0
  52. data/lib/yard/autoload.rb +290 -0
  53. data/lib/yard/cli/command.rb +84 -0
  54. data/lib/yard/cli/command_parser.rb +92 -0
  55. data/lib/yard/cli/config.rb +136 -0
  56. data/lib/yard/cli/diff.rb +270 -0
  57. data/lib/yard/cli/display.rb +68 -0
  58. data/lib/yard/cli/gems.rb +83 -0
  59. data/lib/yard/cli/graph.rb +126 -0
  60. data/lib/yard/cli/help.rb +18 -0
  61. data/lib/yard/cli/i18n.rb +69 -0
  62. data/lib/yard/cli/list.rb +22 -0
  63. data/lib/yard/cli/markup_types.rb +33 -0
  64. data/lib/yard/cli/server.rb +253 -0
  65. data/lib/yard/cli/stats.rb +213 -0
  66. data/lib/yard/cli/yardoc.rb +752 -0
  67. data/lib/yard/cli/yardopts_command.rb +109 -0
  68. data/lib/yard/cli/yri.rb +214 -0
  69. data/lib/yard/code_objects/base.rb +585 -0
  70. data/lib/yard/code_objects/class_object.rb +143 -0
  71. data/lib/yard/code_objects/class_variable_object.rb +8 -0
  72. data/lib/yard/code_objects/constant_object.rb +13 -0
  73. data/lib/yard/code_objects/extended_method_object.rb +23 -0
  74. data/lib/yard/code_objects/extra_file_object.rb +128 -0
  75. data/lib/yard/code_objects/macro_object.rb +172 -0
  76. data/lib/yard/code_objects/method_object.rb +191 -0
  77. data/lib/yard/code_objects/module_object.rb +18 -0
  78. data/lib/yard/code_objects/namespace_object.rb +200 -0
  79. data/lib/yard/code_objects/proxy.rb +258 -0
  80. data/lib/yard/code_objects/root_object.rb +17 -0
  81. data/lib/yard/config.rb +269 -0
  82. data/lib/yard/core_ext/array.rb +15 -0
  83. data/lib/yard/core_ext/file.rb +65 -0
  84. data/lib/yard/core_ext/hash.rb +15 -0
  85. data/lib/yard/core_ext/insertion.rb +60 -0
  86. data/lib/yard/core_ext/module.rb +19 -0
  87. data/lib/yard/core_ext/string.rb +67 -0
  88. data/lib/yard/core_ext/symbol_hash.rb +73 -0
  89. data/lib/yard/docstring.rb +362 -0
  90. data/lib/yard/docstring_parser.rb +321 -0
  91. data/lib/yard/globals.rb +18 -0
  92. data/lib/yard/handlers/base.rb +597 -0
  93. data/lib/yard/handlers/c/alias_handler.rb +15 -0
  94. data/lib/yard/handlers/c/attribute_handler.rb +13 -0
  95. data/lib/yard/handlers/c/base.rb +110 -0
  96. data/lib/yard/handlers/c/class_handler.rb +26 -0
  97. data/lib/yard/handlers/c/constant_handler.rb +12 -0
  98. data/lib/yard/handlers/c/handler_methods.rb +166 -0
  99. data/lib/yard/handlers/c/init_handler.rb +18 -0
  100. data/lib/yard/handlers/c/method_handler.rb +35 -0
  101. data/lib/yard/handlers/c/mixin_handler.rb +13 -0
  102. data/lib/yard/handlers/c/module_handler.rb +16 -0
  103. data/lib/yard/handlers/c/override_comment_handler.rb +30 -0
  104. data/lib/yard/handlers/c/path_handler.rb +10 -0
  105. data/lib/yard/handlers/c/struct_handler.rb +12 -0
  106. data/lib/yard/handlers/c/symbol_handler.rb +7 -0
  107. data/lib/yard/handlers/processor.rb +201 -0
  108. data/lib/yard/handlers/ruby/alias_handler.rb +41 -0
  109. data/lib/yard/handlers/ruby/attribute_handler.rb +82 -0
  110. data/lib/yard/handlers/ruby/base.rb +164 -0
  111. data/lib/yard/handlers/ruby/class_condition_handler.rb +86 -0
  112. data/lib/yard/handlers/ruby/class_handler.rb +121 -0
  113. data/lib/yard/handlers/ruby/class_variable_handler.rb +16 -0
  114. data/lib/yard/handlers/ruby/comment_handler.rb +9 -0
  115. data/lib/yard/handlers/ruby/constant_handler.rb +45 -0
  116. data/lib/yard/handlers/ruby/dsl_handler.rb +14 -0
  117. data/lib/yard/handlers/ruby/dsl_handler_methods.rb +77 -0
  118. data/lib/yard/handlers/ruby/exception_handler.rb +26 -0
  119. data/lib/yard/handlers/ruby/extend_handler.rb +21 -0
  120. data/lib/yard/handlers/ruby/legacy/alias_handler.rb +34 -0
  121. data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +60 -0
  122. data/lib/yard/handlers/ruby/legacy/base.rb +250 -0
  123. data/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +83 -0
  124. data/lib/yard/handlers/ruby/legacy/class_handler.rb +111 -0
  125. data/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +14 -0
  126. data/lib/yard/handlers/ruby/legacy/comment_handler.rb +9 -0
  127. data/lib/yard/handlers/ruby/legacy/constant_handler.rb +28 -0
  128. data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +16 -0
  129. data/lib/yard/handlers/ruby/legacy/exception_handler.rb +12 -0
  130. data/lib/yard/handlers/ruby/legacy/extend_handler.rb +20 -0
  131. data/lib/yard/handlers/ruby/legacy/method_handler.rb +85 -0
  132. data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +39 -0
  133. data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +18 -0
  134. data/lib/yard/handlers/ruby/legacy/module_handler.rb +11 -0
  135. data/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +21 -0
  136. data/lib/yard/handlers/ruby/legacy/visibility_handler.rb +16 -0
  137. data/lib/yard/handlers/ruby/legacy/yield_handler.rb +28 -0
  138. data/lib/yard/handlers/ruby/method_condition_handler.rb +8 -0
  139. data/lib/yard/handlers/ruby/method_handler.rb +92 -0
  140. data/lib/yard/handlers/ruby/mixin_handler.rb +36 -0
  141. data/lib/yard/handlers/ruby/module_function_handler.rb +26 -0
  142. data/lib/yard/handlers/ruby/module_handler.rb +11 -0
  143. data/lib/yard/handlers/ruby/private_constant_handler.rb +36 -0
  144. data/lib/yard/handlers/ruby/struct_handler_methods.rb +141 -0
  145. data/lib/yard/handlers/ruby/visibility_handler.rb +24 -0
  146. data/lib/yard/handlers/ruby/yield_handler.rb +30 -0
  147. data/lib/yard/i18n/locale.rb +74 -0
  148. data/lib/yard/i18n/message.rb +56 -0
  149. data/lib/yard/i18n/messages.rb +55 -0
  150. data/lib/yard/i18n/pot_generator.rb +280 -0
  151. data/lib/yard/i18n/text.rb +173 -0
  152. data/lib/yard/logging.rb +190 -0
  153. data/lib/yard/options.rb +216 -0
  154. data/lib/yard/parser/base.rb +56 -0
  155. data/lib/yard/parser/c/c_parser.rb +231 -0
  156. data/lib/yard/parser/c/comment_parser.rb +131 -0
  157. data/lib/yard/parser/c/statement.rb +63 -0
  158. data/lib/yard/parser/ruby/ast_node.rb +496 -0
  159. data/lib/yard/parser/ruby/legacy/ruby_lex.rb +1378 -0
  160. data/lib/yard/parser/ruby/legacy/ruby_parser.rb +31 -0
  161. data/lib/yard/parser/ruby/legacy/statement.rb +65 -0
  162. data/lib/yard/parser/ruby/legacy/statement_list.rb +384 -0
  163. data/lib/yard/parser/ruby/legacy/token_list.rb +71 -0
  164. data/lib/yard/parser/ruby/ruby_parser.rb +625 -0
  165. data/lib/yard/parser/source_parser.rb +517 -0
  166. data/lib/yard/rake/yardoc_task.rb +74 -0
  167. data/lib/yard/registry.rb +438 -0
  168. data/lib/yard/registry_store.rb +319 -0
  169. data/lib/yard/rubygems/backports/LICENSE.txt +57 -0
  170. data/lib/yard/rubygems/backports/MIT.txt +20 -0
  171. data/lib/yard/rubygems/backports/gem.rb +9 -0
  172. data/lib/yard/rubygems/backports/source_index.rb +370 -0
  173. data/lib/yard/rubygems/backports.rb +8 -0
  174. data/lib/yard/rubygems/doc_manager.rb +88 -0
  175. data/lib/yard/rubygems/specification.rb +41 -0
  176. data/lib/yard/serializers/base.rb +80 -0
  177. data/lib/yard/serializers/file_system_serializer.rb +90 -0
  178. data/lib/yard/serializers/process_serializer.rb +24 -0
  179. data/lib/yard/serializers/stdout_serializer.rb +32 -0
  180. data/lib/yard/serializers/yardoc_serializer.rb +124 -0
  181. data/lib/yard/server/adapter.rb +100 -0
  182. data/lib/yard/server/commands/base.rb +192 -0
  183. data/lib/yard/server/commands/display_file_command.rb +24 -0
  184. data/lib/yard/server/commands/display_object_command.rb +58 -0
  185. data/lib/yard/server/commands/frames_command.rb +15 -0
  186. data/lib/yard/server/commands/library_command.rb +148 -0
  187. data/lib/yard/server/commands/library_index_command.rb +24 -0
  188. data/lib/yard/server/commands/list_command.rb +24 -0
  189. data/lib/yard/server/commands/search_command.rb +78 -0
  190. data/lib/yard/server/commands/static_file_command.rb +57 -0
  191. data/lib/yard/server/doc_server_helper.rb +76 -0
  192. data/lib/yard/server/doc_server_serializer.rb +33 -0
  193. data/lib/yard/server/library_version.rb +227 -0
  194. data/lib/yard/server/rack_adapter.rb +88 -0
  195. data/lib/yard/server/router.rb +176 -0
  196. data/lib/yard/server/static_caching.rb +45 -0
  197. data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +78 -0
  198. data/lib/yard/server/templates/default/fulldoc/html/images/processing.gif +0 -0
  199. data/lib/yard/server/templates/default/fulldoc/html/js/autocomplete.js +12 -0
  200. data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +46 -0
  201. data/lib/yard/server/templates/default/layout/html/script_setup.erb +8 -0
  202. data/lib/yard/server/templates/default/layout/html/setup.rb +7 -0
  203. data/lib/yard/server/templates/default/method_details/html/permalink.erb +4 -0
  204. data/lib/yard/server/templates/default/method_details/html/setup.rb +4 -0
  205. data/lib/yard/server/templates/doc_server/library_list/html/contents.erb +13 -0
  206. data/lib/yard/server/templates/doc_server/library_list/html/headers.erb +26 -0
  207. data/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +12 -0
  208. data/lib/yard/server/templates/doc_server/library_list/html/setup.rb +3 -0
  209. data/lib/yard/server/templates/doc_server/library_list/html/title.erb +2 -0
  210. data/lib/yard/server/templates/doc_server/processing/html/processing.erb +51 -0
  211. data/lib/yard/server/templates/doc_server/processing/html/setup.rb +3 -0
  212. data/lib/yard/server/templates/doc_server/search/html/search.erb +18 -0
  213. data/lib/yard/server/templates/doc_server/search/html/setup.rb +8 -0
  214. data/lib/yard/server/webrick_adapter.rb +43 -0
  215. data/lib/yard/server.rb +11 -0
  216. data/lib/yard/tags/default_factory.rb +176 -0
  217. data/lib/yard/tags/default_tag.rb +12 -0
  218. data/lib/yard/tags/directives.rb +599 -0
  219. data/lib/yard/tags/library.rb +630 -0
  220. data/lib/yard/tags/option_tag.rb +12 -0
  221. data/lib/yard/tags/overload_tag.rb +66 -0
  222. data/lib/yard/tags/ref_tag.rb +7 -0
  223. data/lib/yard/tags/ref_tag_list.rb +27 -0
  224. data/lib/yard/tags/tag.rb +57 -0
  225. data/lib/yard/tags/tag_format_error.rb +6 -0
  226. data/lib/yard/templates/engine.rb +185 -0
  227. data/lib/yard/templates/erb_cache.rb +22 -0
  228. data/lib/yard/templates/helpers/base_helper.rb +212 -0
  229. data/lib/yard/templates/helpers/filter_helper.rb +26 -0
  230. data/lib/yard/templates/helpers/html_helper.rb +599 -0
  231. data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +59 -0
  232. data/lib/yard/templates/helpers/markup/rdoc_markdown.rb +22 -0
  233. data/lib/yard/templates/helpers/markup/rdoc_markup.rb +106 -0
  234. data/lib/yard/templates/helpers/markup_helper.rb +169 -0
  235. data/lib/yard/templates/helpers/method_helper.rb +74 -0
  236. data/lib/yard/templates/helpers/module_helper.rb +19 -0
  237. data/lib/yard/templates/helpers/text_helper.rb +95 -0
  238. data/lib/yard/templates/helpers/uml_helper.rb +46 -0
  239. data/lib/yard/templates/section.rb +106 -0
  240. data/lib/yard/templates/template.rb +407 -0
  241. data/lib/yard/templates/template_options.rb +88 -0
  242. data/lib/yard/verifier.rb +148 -0
  243. data/lib/yard/version.rb +3 -0
  244. data/lib/yard.rb +71 -0
  245. data/po/ja.po +31118 -0
  246. data/spec/cli/command_parser_spec.rb +43 -0
  247. data/spec/cli/command_spec.rb +36 -0
  248. data/spec/cli/config_spec.rb +92 -0
  249. data/spec/cli/diff_spec.rb +260 -0
  250. data/spec/cli/display_spec.rb +30 -0
  251. data/spec/cli/gems_spec.rb +81 -0
  252. data/spec/cli/graph_spec.rb +17 -0
  253. data/spec/cli/help_spec.rb +22 -0
  254. data/spec/cli/i18n_spec.rb +111 -0
  255. data/spec/cli/list_spec.rb +8 -0
  256. data/spec/cli/markup_types_spec.rb +22 -0
  257. data/spec/cli/server_spec.rb +327 -0
  258. data/spec/cli/stats_spec.rb +90 -0
  259. data/spec/cli/yardoc_spec.rb +804 -0
  260. data/spec/cli/yri_spec.rb +99 -0
  261. data/spec/code_objects/base_spec.rb +438 -0
  262. data/spec/code_objects/class_object_spec.rb +225 -0
  263. data/spec/code_objects/code_object_list_spec.rb +33 -0
  264. data/spec/code_objects/constants_spec.rb +82 -0
  265. data/spec/code_objects/extra_file_object_spec.rb +147 -0
  266. data/spec/code_objects/macro_object_spec.rb +148 -0
  267. data/spec/code_objects/method_object_spec.rb +175 -0
  268. data/spec/code_objects/module_object_spec.rb +141 -0
  269. data/spec/code_objects/namespace_object_spec.rb +170 -0
  270. data/spec/code_objects/proxy_spec.rb +140 -0
  271. data/spec/code_objects/spec_helper.rb +3 -0
  272. data/spec/config_spec.rb +176 -0
  273. data/spec/core_ext/array_spec.rb +14 -0
  274. data/spec/core_ext/file_spec.rb +68 -0
  275. data/spec/core_ext/hash_spec.rb +14 -0
  276. data/spec/core_ext/insertion_spec.rb +37 -0
  277. data/spec/core_ext/module_spec.rb +15 -0
  278. data/spec/core_ext/string_spec.rb +42 -0
  279. data/spec/core_ext/symbol_hash_spec.rb +86 -0
  280. data/spec/docstring_parser_spec.rb +228 -0
  281. data/spec/docstring_spec.rb +335 -0
  282. data/spec/handlers/alias_handler_spec.rb +80 -0
  283. data/spec/handlers/attribute_handler_spec.rb +94 -0
  284. data/spec/handlers/base_spec.rb +206 -0
  285. data/spec/handlers/c/alias_handler_spec.rb +33 -0
  286. data/spec/handlers/c/attribute_handler_spec.rb +40 -0
  287. data/spec/handlers/c/class_handler_spec.rb +63 -0
  288. data/spec/handlers/c/constant_handler_spec.rb +68 -0
  289. data/spec/handlers/c/init_handler_spec.rb +47 -0
  290. data/spec/handlers/c/method_handler_spec.rb +229 -0
  291. data/spec/handlers/c/mixin_handler_spec.rb +27 -0
  292. data/spec/handlers/c/module_handler_spec.rb +38 -0
  293. data/spec/handlers/c/override_comment_handler_spec.rb +46 -0
  294. data/spec/handlers/c/path_handler_spec.rb +35 -0
  295. data/spec/handlers/c/spec_helper.rb +13 -0
  296. data/spec/handlers/c/struct_handler_spec.rb +15 -0
  297. data/spec/handlers/class_condition_handler_spec.rb +67 -0
  298. data/spec/handlers/class_handler_spec.rb +246 -0
  299. data/spec/handlers/class_variable_handler_spec.rb +11 -0
  300. data/spec/handlers/constant_handler_spec.rb +64 -0
  301. data/spec/handlers/dsl_handler_spec.rb +197 -0
  302. data/spec/handlers/examples/alias_handler_001.rb.txt +44 -0
  303. data/spec/handlers/examples/attribute_handler_001.rb.txt +32 -0
  304. data/spec/handlers/examples/class_condition_handler_001.rb.txt +69 -0
  305. data/spec/handlers/examples/class_handler_001.rb.txt +120 -0
  306. data/spec/handlers/examples/class_variable_handler_001.rb.txt +10 -0
  307. data/spec/handlers/examples/constant_handler_001.rb.txt +25 -0
  308. data/spec/handlers/examples/dsl_handler_001.rb.txt +125 -0
  309. data/spec/handlers/examples/exception_handler_001.rb.txt +59 -0
  310. data/spec/handlers/examples/extend_handler_001.rb.txt +16 -0
  311. data/spec/handlers/examples/method_condition_handler_001.rb.txt +10 -0
  312. data/spec/handlers/examples/method_handler_001.rb.txt +126 -0
  313. data/spec/handlers/examples/mixin_handler_001.rb.txt +37 -0
  314. data/spec/handlers/examples/module_handler_001.rb.txt +29 -0
  315. data/spec/handlers/examples/private_constant_handler_001.rb.txt +8 -0
  316. data/spec/handlers/examples/process_handler_001.rb.txt +11 -0
  317. data/spec/handlers/examples/visibility_handler_001.rb.txt +32 -0
  318. data/spec/handlers/examples/yield_handler_001.rb.txt +54 -0
  319. data/spec/handlers/exception_handler_spec.rb +48 -0
  320. data/spec/handlers/extend_handler_spec.rb +23 -0
  321. data/spec/handlers/legacy_base_spec.rb +128 -0
  322. data/spec/handlers/method_condition_handler_spec.rb +14 -0
  323. data/spec/handlers/method_handler_spec.rb +184 -0
  324. data/spec/handlers/mixin_handler_spec.rb +55 -0
  325. data/spec/handlers/module_function_handler_spec.rb +105 -0
  326. data/spec/handlers/module_handler_spec.rb +34 -0
  327. data/spec/handlers/private_constant_handler_spec.rb +24 -0
  328. data/spec/handlers/processor_spec.rb +34 -0
  329. data/spec/handlers/ruby/base_spec.rb +94 -0
  330. data/spec/handlers/ruby/legacy/base_spec.rb +82 -0
  331. data/spec/handlers/spec_helper.rb +33 -0
  332. data/spec/handlers/visibility_handler_spec.rb +39 -0
  333. data/spec/handlers/yield_handler_spec.rb +51 -0
  334. data/spec/i18n/locale_spec.rb +68 -0
  335. data/spec/i18n/message_spec.rb +52 -0
  336. data/spec/i18n/messages_spec.rb +67 -0
  337. data/spec/i18n/pot_generator_spec.rb +262 -0
  338. data/spec/i18n/text_spec.rb +180 -0
  339. data/spec/logging_spec.rb +35 -0
  340. data/spec/options_spec.rb +171 -0
  341. data/spec/parser/base_spec.rb +24 -0
  342. data/spec/parser/c_parser_spec.rb +171 -0
  343. data/spec/parser/examples/array.c.txt +3887 -0
  344. data/spec/parser/examples/example1.rb.txt +8 -0
  345. data/spec/parser/examples/extrafile.c.txt +8 -0
  346. data/spec/parser/examples/multifile.c.txt +22 -0
  347. data/spec/parser/examples/override.c.txt +424 -0
  348. data/spec/parser/examples/parse_in_order_001.rb.txt +2 -0
  349. data/spec/parser/examples/parse_in_order_002.rb.txt +2 -0
  350. data/spec/parser/examples/tag_handler_001.rb.txt +8 -0
  351. data/spec/parser/ruby/ast_node_spec.rb +33 -0
  352. data/spec/parser/ruby/legacy/statement_list_spec.rb +299 -0
  353. data/spec/parser/ruby/legacy/token_list_spec.rb +77 -0
  354. data/spec/parser/ruby/ruby_parser_spec.rb +334 -0
  355. data/spec/parser/source_parser_spec.rb +717 -0
  356. data/spec/parser/tag_parsing_spec.rb +18 -0
  357. data/spec/rake/yardoc_task_spec.rb +101 -0
  358. data/spec/registry_spec.rb +393 -0
  359. data/spec/registry_store_spec.rb +315 -0
  360. data/spec/rubygems/doc_manager_spec.rb +112 -0
  361. data/spec/serializers/data/serialized_yardoc/checksums +1 -0
  362. data/spec/serializers/data/serialized_yardoc/objects/Foo/bar_i.dat +0 -0
  363. data/spec/serializers/data/serialized_yardoc/objects/Foo/baz_i.dat +0 -0
  364. data/spec/serializers/data/serialized_yardoc/objects/Foo.dat +0 -0
  365. data/spec/serializers/data/serialized_yardoc/objects/root.dat +0 -0
  366. data/spec/serializers/data/serialized_yardoc/proxy_types +2 -0
  367. data/spec/serializers/file_system_serializer_spec.rb +124 -0
  368. data/spec/serializers/spec_helper.rb +2 -0
  369. data/spec/serializers/yardoc_serializer_spec.rb +46 -0
  370. data/spec/server/adapter_spec.rb +38 -0
  371. data/spec/server/commands/base_spec.rb +87 -0
  372. data/spec/server/commands/library_command_spec.rb +39 -0
  373. data/spec/server/commands/static_file_command_spec.rb +84 -0
  374. data/spec/server/doc_server_helper_spec.rb +53 -0
  375. data/spec/server/doc_server_serializer_spec.rb +45 -0
  376. data/spec/server/rack_adapter_spec.rb +20 -0
  377. data/spec/server/router_spec.rb +122 -0
  378. data/spec/server/spec_helper.rb +17 -0
  379. data/spec/server/static_caching_spec.rb +39 -0
  380. data/spec/server/webrick_servlet_spec.rb +20 -0
  381. data/spec/server_spec.rb +10 -0
  382. data/spec/spec_helper.rb +128 -0
  383. data/spec/tags/default_factory_spec.rb +152 -0
  384. data/spec/tags/default_tag_spec.rb +11 -0
  385. data/spec/tags/directives_spec.rb +453 -0
  386. data/spec/tags/library_spec.rb +34 -0
  387. data/spec/tags/overload_tag_spec.rb +53 -0
  388. data/spec/tags/ref_tag_list_spec.rb +53 -0
  389. data/spec/templates/class_spec.rb +44 -0
  390. data/spec/templates/constant_spec.rb +40 -0
  391. data/spec/templates/engine_spec.rb +121 -0
  392. data/spec/templates/examples/class001.html +280 -0
  393. data/spec/templates/examples/class001.txt +36 -0
  394. data/spec/templates/examples/class002.html +35 -0
  395. data/spec/templates/examples/constant001.txt +25 -0
  396. data/spec/templates/examples/constant002.txt +7 -0
  397. data/spec/templates/examples/constant003.txt +11 -0
  398. data/spec/templates/examples/method001.html +130 -0
  399. data/spec/templates/examples/method001.txt +35 -0
  400. data/spec/templates/examples/method002.html +86 -0
  401. data/spec/templates/examples/method002.txt +20 -0
  402. data/spec/templates/examples/method003.html +159 -0
  403. data/spec/templates/examples/method003.txt +45 -0
  404. data/spec/templates/examples/method004.html +44 -0
  405. data/spec/templates/examples/method004.txt +10 -0
  406. data/spec/templates/examples/method005.html +99 -0
  407. data/spec/templates/examples/method005.txt +33 -0
  408. data/spec/templates/examples/module001.dot +33 -0
  409. data/spec/templates/examples/module001.html +825 -0
  410. data/spec/templates/examples/module001.txt +33 -0
  411. data/spec/templates/examples/module002.html +318 -0
  412. data/spec/templates/examples/module003.html +185 -0
  413. data/spec/templates/examples/module004.html +387 -0
  414. data/spec/templates/examples/tag001.txt +82 -0
  415. data/spec/templates/helpers/base_helper_spec.rb +175 -0
  416. data/spec/templates/helpers/html_helper_spec.rb +612 -0
  417. data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +48 -0
  418. data/spec/templates/helpers/markup/rdoc_markup_spec.rb +93 -0
  419. data/spec/templates/helpers/markup_helper_spec.rb +135 -0
  420. data/spec/templates/helpers/method_helper_spec.rb +82 -0
  421. data/spec/templates/helpers/shared_signature_examples.rb +123 -0
  422. data/spec/templates/helpers/text_helper_spec.rb +44 -0
  423. data/spec/templates/method_spec.rb +102 -0
  424. data/spec/templates/module_spec.rb +181 -0
  425. data/spec/templates/onefile_spec.rb +64 -0
  426. data/spec/templates/section_spec.rb +146 -0
  427. data/spec/templates/spec_helper.rb +73 -0
  428. data/spec/templates/tag_spec.rb +51 -0
  429. data/spec/templates/template_spec.rb +409 -0
  430. data/spec/verifier_spec.rb +106 -0
  431. data/templates/default/class/dot/setup.rb +6 -0
  432. data/templates/default/class/dot/superklass.erb +3 -0
  433. data/templates/default/class/html/constructor_details.erb +8 -0
  434. data/templates/default/class/html/setup.rb +1 -0
  435. data/templates/default/class/html/subclasses.erb +4 -0
  436. data/templates/default/class/setup.rb +36 -0
  437. data/templates/default/class/text/setup.rb +11 -0
  438. data/templates/default/class/text/subclasses.erb +5 -0
  439. data/templates/default/constant/text/header.erb +11 -0
  440. data/templates/default/constant/text/setup.rb +3 -0
  441. data/templates/default/docstring/html/abstract.erb +4 -0
  442. data/templates/default/docstring/html/deprecated.erb +1 -0
  443. data/templates/default/docstring/html/index.erb +5 -0
  444. data/templates/default/docstring/html/note.erb +6 -0
  445. data/templates/default/docstring/html/private.erb +4 -0
  446. data/templates/default/docstring/html/returns_void.erb +1 -0
  447. data/templates/default/docstring/html/text.erb +1 -0
  448. data/templates/default/docstring/html/todo.erb +6 -0
  449. data/templates/default/docstring/setup.rb +51 -0
  450. data/templates/default/docstring/text/abstract.erb +2 -0
  451. data/templates/default/docstring/text/deprecated.erb +2 -0
  452. data/templates/default/docstring/text/index.erb +2 -0
  453. data/templates/default/docstring/text/note.erb +4 -0
  454. data/templates/default/docstring/text/private.erb +2 -0
  455. data/templates/default/docstring/text/returns_void.erb +1 -0
  456. data/templates/default/docstring/text/text.erb +1 -0
  457. data/templates/default/docstring/text/todo.erb +4 -0
  458. data/templates/default/fulldoc/html/css/common.css +1 -0
  459. data/templates/default/fulldoc/html/css/full_list.css +57 -0
  460. data/templates/default/fulldoc/html/css/style.css +338 -0
  461. data/templates/default/fulldoc/html/frames.erb +28 -0
  462. data/templates/default/fulldoc/html/full_list.erb +40 -0
  463. data/templates/default/fulldoc/html/full_list_class.erb +2 -0
  464. data/templates/default/fulldoc/html/full_list_file.erb +5 -0
  465. data/templates/default/fulldoc/html/full_list_method.erb +8 -0
  466. data/templates/default/fulldoc/html/js/app.js +214 -0
  467. data/templates/default/fulldoc/html/js/full_list.js +178 -0
  468. data/templates/default/fulldoc/html/js/jquery.js +4 -0
  469. data/templates/default/fulldoc/html/setup.rb +199 -0
  470. data/templates/default/layout/dot/header.erb +6 -0
  471. data/templates/default/layout/dot/setup.rb +14 -0
  472. data/templates/default/layout/html/breadcrumb.erb +13 -0
  473. data/templates/default/layout/html/files.erb +11 -0
  474. data/templates/default/layout/html/footer.erb +5 -0
  475. data/templates/default/layout/html/headers.erb +14 -0
  476. data/templates/default/layout/html/index.erb +2 -0
  477. data/templates/default/layout/html/layout.erb +20 -0
  478. data/templates/default/layout/html/listing.erb +4 -0
  479. data/templates/default/layout/html/objects.erb +32 -0
  480. data/templates/default/layout/html/script_setup.erb +5 -0
  481. data/templates/default/layout/html/search.erb +8 -0
  482. data/templates/default/layout/html/setup.rb +71 -0
  483. data/templates/default/method/html/header.erb +16 -0
  484. data/templates/default/method/setup.rb +3 -0
  485. data/templates/default/method/text/header.erb +1 -0
  486. data/templates/default/method_details/html/header.erb +3 -0
  487. data/templates/default/method_details/html/method_signature.erb +25 -0
  488. data/templates/default/method_details/html/source.erb +10 -0
  489. data/templates/default/method_details/setup.rb +10 -0
  490. data/templates/default/method_details/text/header.erb +10 -0
  491. data/templates/default/method_details/text/method_signature.erb +12 -0
  492. data/templates/default/method_details/text/setup.rb +10 -0
  493. data/templates/default/module/dot/child.erb +1 -0
  494. data/templates/default/module/dot/dependencies.erb +3 -0
  495. data/templates/default/module/dot/header.erb +6 -0
  496. data/templates/default/module/dot/info.erb +14 -0
  497. data/templates/default/module/dot/setup.rb +14 -0
  498. data/templates/default/module/html/attribute_details.erb +10 -0
  499. data/templates/default/module/html/attribute_summary.erb +8 -0
  500. data/templates/default/module/html/box_info.erb +37 -0
  501. data/templates/default/module/html/children.erb +8 -0
  502. data/templates/default/module/html/constant_summary.erb +13 -0
  503. data/templates/default/module/html/defines.erb +3 -0
  504. data/templates/default/module/html/header.erb +5 -0
  505. data/templates/default/module/html/inherited_attributes.erb +14 -0
  506. data/templates/default/module/html/inherited_constants.erb +8 -0
  507. data/templates/default/module/html/inherited_methods.erb +19 -0
  508. data/templates/default/module/html/item_summary.erb +40 -0
  509. data/templates/default/module/html/method_details_list.erb +9 -0
  510. data/templates/default/module/html/method_summary.erb +14 -0
  511. data/templates/default/module/html/methodmissing.erb +12 -0
  512. data/templates/default/module/html/pre_docstring.erb +1 -0
  513. data/templates/default/module/setup.rb +164 -0
  514. data/templates/default/module/text/children.erb +10 -0
  515. data/templates/default/module/text/class_meths_list.erb +8 -0
  516. data/templates/default/module/text/extends.erb +8 -0
  517. data/templates/default/module/text/header.erb +7 -0
  518. data/templates/default/module/text/includes.erb +8 -0
  519. data/templates/default/module/text/instance_meths_list.erb +8 -0
  520. data/templates/default/module/text/setup.rb +12 -0
  521. data/templates/default/onefile/html/files.erb +5 -0
  522. data/templates/default/onefile/html/headers.erb +6 -0
  523. data/templates/default/onefile/html/layout.erb +17 -0
  524. data/templates/default/onefile/html/readme.erb +3 -0
  525. data/templates/default/onefile/html/setup.rb +61 -0
  526. data/templates/default/root/dot/child.erb +3 -0
  527. data/templates/default/root/dot/setup.rb +5 -0
  528. data/templates/default/root/html/setup.rb +1 -0
  529. data/templates/default/tags/html/example.erb +11 -0
  530. data/templates/default/tags/html/index.erb +3 -0
  531. data/templates/default/tags/html/option.erb +24 -0
  532. data/templates/default/tags/html/overload.erb +14 -0
  533. data/templates/default/tags/html/see.erb +8 -0
  534. data/templates/default/tags/html/tag.erb +20 -0
  535. data/templates/default/tags/setup.rb +55 -0
  536. data/templates/default/tags/text/example.erb +12 -0
  537. data/templates/default/tags/text/index.erb +1 -0
  538. data/templates/default/tags/text/option.erb +20 -0
  539. data/templates/default/tags/text/overload.erb +19 -0
  540. data/templates/default/tags/text/see.erb +11 -0
  541. data/templates/default/tags/text/tag.erb +13 -0
  542. data/templates/guide/class/html/setup.rb +1 -0
  543. data/templates/guide/docstring/html/setup.rb +1 -0
  544. data/templates/guide/fulldoc/html/css/style.css +108 -0
  545. data/templates/guide/fulldoc/html/js/app.js +33 -0
  546. data/templates/guide/fulldoc/html/setup.rb +73 -0
  547. data/templates/guide/layout/html/layout.erb +81 -0
  548. data/templates/guide/layout/html/setup.rb +28 -0
  549. data/templates/guide/method/html/header.erb +18 -0
  550. data/templates/guide/method/html/setup.rb +21 -0
  551. data/templates/guide/module/html/header.erb +7 -0
  552. data/templates/guide/module/html/method_list.erb +5 -0
  553. data/templates/guide/module/html/setup.rb +26 -0
  554. data/templates/guide/onefile/html/files.erb +4 -0
  555. data/templates/guide/onefile/html/setup.rb +5 -0
  556. data/templates/guide/onefile/html/toc.erb +3 -0
  557. data/templates/guide/tags/html/setup.rb +8 -0
  558. metadata +689 -0
@@ -0,0 +1,197 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+ require 'ostruct'
3
+
4
+ describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}DSLHandler" do
5
+ before(:all) { parse_file :dsl_handler_001, __FILE__ }
6
+
7
+ it "should create a readable attribute when @!attribute r is found" do
8
+ obj = Registry.at('Foo#attr1')
9
+ obj.should_not be_nil
10
+ obj.should be_reader
11
+ obj.tag(:return).types.should == ['Numeric']
12
+ Registry.at('Foo#attr1=').should be_nil
13
+ end
14
+
15
+ it "should create a writable attribute when @!attribute w is found" do
16
+ obj = Registry.at('Foo#attr2=')
17
+ obj.should_not be_nil
18
+ obj.should be_writer
19
+ Registry.at('Foo#attr2').should be_nil
20
+ end
21
+
22
+ it "should default to readwrite @!attribute" do
23
+ obj = Registry.at('Foo#attr3')
24
+ obj.should_not be_nil
25
+ obj.should be_reader
26
+ obj = Registry.at('Foo#attr3=')
27
+ obj.should_not be_nil
28
+ obj.should be_writer
29
+ end
30
+
31
+ it "should allow @!attribute to define alternate method name" do
32
+ Registry.at('Foo#attr4').should be_nil
33
+ Registry.at('Foo#custom').should_not be_nil
34
+ end
35
+
36
+ it "should default to creating an instance method for any DSL method with special tags" do
37
+ obj = Registry.at('Foo#implicit0')
38
+ obj.should_not be_nil
39
+ obj.docstring.should == "IMPLICIT METHOD!"
40
+ obj.tag(:return).types.should == ['String']
41
+ end
42
+
43
+ it "should recognize implicit docstring when it has scope tag" do
44
+ obj = Registry.at("Foo.implicit1")
45
+ obj.should_not be_nil
46
+ obj.scope.should == :class
47
+ end
48
+
49
+ it "should recognize implicit docstring when it has visibility tag" do
50
+ obj = Registry.at("Foo#implicit2")
51
+ obj.should_not be_nil
52
+ obj.visibility.should == :protected
53
+ end
54
+
55
+ it "should not recognize implicit docstring with any other normal tag" do
56
+ obj = Registry.at('Foo#implicit_invalid3')
57
+ obj.should be_nil
58
+ end
59
+
60
+ it "should set the method name when using @!method" do
61
+ obj = Registry.at('Foo.xyz')
62
+ obj.should_not be_nil
63
+ obj.signature.should == 'def xyz(a, b, c)'
64
+ obj.parameters.should == [['a', nil], ['b', nil], ['c', nil]]
65
+ obj.source.should == 'foo_bar'
66
+ obj.docstring.should == 'The foo method'
67
+ end
68
+
69
+ it "should allow setting of @!scope" do
70
+ Registry.at('Foo.xyz').scope.should == :class
71
+ end
72
+
73
+ it "should create module function if @!scope is module" do
74
+ mod_c = Registry.at('Foo.modfunc1')
75
+ mod_i = Registry.at('Foo#modfunc1')
76
+ mod_c.scope.should == :class
77
+ mod_i.visibility.should == :private
78
+ end
79
+
80
+ it "should allow setting of @!visibility" do
81
+ Registry.at('Foo.xyz').visibility.should == :protected
82
+ end
83
+
84
+ it "should ignore DSL methods without tags" do
85
+ Registry.at('Foo#implicit_invalid').should be_nil
86
+ end
87
+
88
+ it "should accept a DSL method without tags if it has hash_flag (##)" do
89
+ Registry.at('Foo#implicit_valid').should_not be_nil
90
+ Registry.at('Foo#implicit_invalid2').should be_nil
91
+ end
92
+
93
+ it "should allow creation of macros" do
94
+ macro = CodeObjects::MacroObject.find('property')
95
+ macro.should_not be_nil
96
+ macro.should_not be_attached
97
+ macro.method_object.should be_nil
98
+ end
99
+
100
+ it "should handle macros with no parameters to expand" do
101
+ Registry.at('Foo#none').should_not be_nil
102
+ Registry.at('Baz#none').signature.should == 'def none(foo, bar)'
103
+ end
104
+
105
+ it "should expand $N on method definitions" do
106
+ Registry.at('Foo#regular_meth').docstring.should == 'a b c'
107
+ end
108
+
109
+ it "should apply new macro docstrings on new objects" do
110
+ obj = Registry.at('Foo#name')
111
+ obj.should_not be_nil
112
+ obj.source.should == 'property :name, String, :a, :b, :c'
113
+ obj.signature.should == 'def name(a, b, c)'
114
+ obj.docstring.should == 'A property that is awesome.'
115
+ obj.tag(:param).name.should == 'a'
116
+ obj.tag(:param).text.should == 'first parameter'
117
+ obj.tag(:return).types.should == ['String']
118
+ obj.tag(:return).text.should == 'the property name'
119
+ end
120
+
121
+ it "should allow reuse of named macros" do
122
+ obj = Registry.at('Foo#age')
123
+ obj.should_not be_nil
124
+ obj.source.should == 'property :age, Fixnum, :value'
125
+ obj.signature.should == 'def age(value)'
126
+ obj.docstring.should == 'A property that is awesome.'
127
+ obj.tag(:param).name.should == 'value'
128
+ obj.tag(:param).text.should == 'first parameter'
129
+ obj.tag(:return).types.should == ['Fixnum']
130
+ obj.tag(:return).text.should == 'the property age'
131
+ end
132
+
133
+ it "should know about method information on DSL with macro expansion" do
134
+ Registry.at('Foo#right_name').should_not be_nil
135
+ Registry.at('Foo#right_name').source.should ==
136
+ 'implicit_with_different_method_name :wrong, :right'
137
+ Registry.at('Foo#wrong_name').should be_nil
138
+ end
139
+
140
+ it "should use attached macros" do
141
+ macro = CodeObjects::MacroObject.find('parser')
142
+ macro.macro_data.should == "@!method $1(opts = {})\n@return NOTHING!"
143
+ macro.should_not be_nil
144
+ macro.should be_attached
145
+ macro.method_object.should == P('Foo.parser')
146
+ obj = Registry.at('Foo#c_parser')
147
+ obj.should_not be_nil
148
+ obj.docstring.should == ""
149
+ obj.signature.should == "def c_parser(opts = {})"
150
+ obj.docstring.tag(:return).text.should == "NOTHING!"
151
+ end
152
+
153
+ it "should append docstring on DSL method to attached macro" do
154
+ obj = Registry.at('Foo#d_parser')
155
+ obj.should_not be_nil
156
+ obj.docstring.should == "Another docstring"
157
+ obj.signature.should == "def d_parser(opts = {})"
158
+ obj.docstring.tag(:return).text.should == "NOTHING!"
159
+ end
160
+
161
+ it "should only use attached macros on methods defined in inherited hierarchy" do
162
+ Registry.at('Bar#x_parser').should be_nil
163
+ Registry.at('Baz#y_parser').should_not be_nil
164
+ end
165
+
166
+ it "should look through mixins for attached macros" do
167
+ meth = Registry.at('Baz#mixin_method')
168
+ meth.should_not be_nil
169
+ meth.docstring.should == 'DSL method mixin_method'
170
+ end
171
+
172
+ it "should handle top-level DSL methods" do
173
+ obj = Registry.at('#my_other_method')
174
+ obj.should_not be_nil
175
+ obj.docstring.should == "Docstring for method"
176
+ end
177
+
178
+ it "should handle Constant.foo syntax" do
179
+ obj = Registry.at('#beep')
180
+ obj.should_not be_nil
181
+ obj.signature.should == 'def beep(a, b, c)'
182
+ end
183
+
184
+ it "should expand attached macros in first DSL method" do
185
+ Registry.at('DSLMethods#foo').docstring.should == "Returns String for foo"
186
+ Registry.at('DSLMethods#bar').docstring.should == "Returns Integer for bar"
187
+ end
188
+
189
+ it "should not detect implicit macros with invalid method names" do
190
+ undoc_error <<-eof
191
+ ##
192
+ # IMPLICIT METHOD THAT SHOULD
193
+ # NOT BE DETECTED
194
+ dsl_method '/foo/bar'
195
+ eof
196
+ end
197
+ end
@@ -0,0 +1,44 @@
1
+ module A
2
+ def a; end
3
+ alias_method :b, :a
4
+
5
+ # Handle keyword syntax too
6
+ alias :c :a
7
+ alias d? a
8
+ alias [] a
9
+ alias []= a
10
+ alias -@ a
11
+ alias % a
12
+ alias * a
13
+ alias for a
14
+ alias ConstantName a
15
+
16
+ # Handle quoted symbols
17
+ alias :'foo' :'a'
18
+ end
19
+
20
+ class C
21
+ def x; end
22
+ end
23
+
24
+ class B < C
25
+ alias_method(:q, :x)
26
+ alias_method :r?, :x
27
+ alias_method :s, :to_s
28
+ alias_method :t, :inspect if 500 == 3 * CONSTANT
29
+ alias_method :<<, :a
30
+ alias_method :for, :a
31
+ alias do x
32
+ alias x2 do
33
+ end
34
+
35
+ class D
36
+ # Foo bar
37
+ def a; "FOO" end
38
+
39
+ # @return [String]
40
+ alias b a
41
+
42
+ # @return [Numeric]
43
+ def a; 0 end
44
+ end
@@ -0,0 +1,32 @@
1
+ module A
2
+ attr_writer :x
3
+ end
4
+
5
+ class B
6
+ class << self
7
+ attr_accessor :z
8
+ end
9
+
10
+ attr :a, true
11
+ attr :a2, false
12
+ attr :a3
13
+ # Docstring
14
+ attr_reader :b, :c, :d
15
+ attr_writer :e
16
+ attr_accessor 'f'
17
+
18
+ attr_accessor :z
19
+ end
20
+
21
+ class C
22
+ def foo; end
23
+ attr_writer :foo
24
+
25
+ def bar=(value); end
26
+ attr_reader :bar
27
+ end
28
+
29
+ class D
30
+ protected
31
+ attr_reader :parser
32
+ end
@@ -0,0 +1,69 @@
1
+ class A
2
+ if some_condition
3
+ def a; end
4
+ elsif 1 == 1
5
+ def b; end
6
+ else
7
+ def c; end
8
+ end
9
+
10
+ def d; end if 50 * 2 == 101
11
+
12
+ unless false
13
+ def e; end
14
+ else
15
+ def enot; end
16
+ end
17
+
18
+ def g; end unless 5 * 2 == 101
19
+
20
+ def h
21
+ if 1
22
+ def hnot; end
23
+ end
24
+ end
25
+
26
+ if defined? A
27
+ def j; end
28
+ else
29
+ def jnot; end
30
+ end
31
+
32
+ if defined? RUBY_VERSION
33
+ def k; end
34
+ else
35
+ def knot; end
36
+ end
37
+
38
+ if 0
39
+ def nnot; end
40
+ else
41
+ def n; end
42
+ end
43
+
44
+ if 256
45
+ def o; end
46
+ else
47
+ def onot; end
48
+ end
49
+
50
+ if true
51
+ def p; end
52
+ else
53
+ def pnot; end
54
+ end
55
+
56
+ if false
57
+ def qnot; end
58
+ else
59
+ def q; end
60
+ end
61
+
62
+ private
63
+
64
+ if a == 1
65
+ def m; end
66
+ else
67
+ def mnot; end
68
+ end
69
+ end
@@ -0,0 +1,120 @@
1
+ # Docstring
2
+ class A
3
+ module B; end
4
+ private
5
+ class B::C < String;
6
+ def method1; end
7
+ def method2; end
8
+ end
9
+ class X<B::C
10
+ end
11
+ class<<self
12
+ def classmethod1; end
13
+ end
14
+
15
+ class << A::B::C; def Hello; end end
16
+ end
17
+
18
+ module B
19
+ class A < A
20
+ end
21
+ end
22
+
23
+ class RT < XX::RT; end
24
+
25
+ class Test1 < R "something"
26
+ end
27
+
28
+ class Test2 < R(/something/)
29
+ end
30
+
31
+ class Test3 < Struct.new(:foo, :bar)
32
+ end
33
+
34
+ class Test4 < OStruct.new
35
+ end
36
+
37
+ class Test5 < DelegateClass(Array)
38
+ end
39
+
40
+ class Test6 < NotDelegateClass(Array)
41
+ end
42
+
43
+ class ::MyRootClass
44
+ end
45
+
46
+ module Holder
47
+ module SomeMod
48
+ class Importer
49
+ def parse; end
50
+ end
51
+ end
52
+ end
53
+
54
+ module Holder
55
+ class Importer < Holder::SomeMod::Importer
56
+ def a; end
57
+ end
58
+ end
59
+
60
+ class String; end
61
+ CONST = String
62
+ class << CONST
63
+ def classmethod; end
64
+ end
65
+
66
+ module Q
67
+ class Logger < ::Logger; end
68
+ class Foo < ::Logger; end
69
+ end
70
+
71
+ class << Symbol
72
+ alias toString to_s
73
+ end
74
+
75
+ # Docstring
76
+ class Zebra
77
+ end
78
+
79
+ # Docstring 2
80
+
81
+ class Zebra
82
+ end
83
+
84
+ class Zebra
85
+ end
86
+
87
+ # A simple struct
88
+ class RegularStruct < Struct; end
89
+ class RegularStruct2 < ::Struct; end
90
+
91
+ class Point < Struct.new(:x, :y, :z)
92
+ end
93
+
94
+ class AnotherPoint < Struct.new('XPoint', :a, :b, :c, :description)
95
+ end
96
+
97
+ # @attr [IO] input the input stream
98
+ # @attr mode the mode to read
99
+ # @attr [Proc, #call] someproc the proc to run
100
+ class DoccedStruct < Struct.new(:input, :mode, :someproc)
101
+ end
102
+
103
+ # @attr [String] first the first entry
104
+ # @attr_reader [Fixnum] second this only has a reader
105
+ # @attr_writer [Array] third this only has a writer
106
+ # @attr_reader [#read] fourth returns a proc that reads
107
+ # @attr_writer [IO] fourth sets the proc that writes stuff
108
+ class SemiDoccedStruct < Struct.new(:first, :second, :third, :fourth)
109
+ end
110
+
111
+ # @attr [String] first the first entry
112
+ # @attr_reader [Fixnum] second this only has a reader
113
+ # @attr_writer [Array] third this only has a writer
114
+ # @attr_reader [#read] fourth returns a proc that reads
115
+ # @attr_writer [IO] fourth sets the proc that writes stuff
116
+ class NotAStruct; end
117
+
118
+ class Outer1
119
+ class Inner1 < self; end
120
+ end
@@ -0,0 +1,10 @@
1
+ module A
2
+ class B
3
+ @@somevar = "hello"
4
+ @@somevar.value = "H"
5
+
6
+ def method
7
+ @@somevar = "don't document this"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,25 @@
1
+ module A
2
+ class B
3
+ notaconstant = 2
4
+ SOMECONSTANT= "hello"
5
+
6
+ def method
7
+ SOMECONSTANT = "don't document this"
8
+ end
9
+
10
+ MYCONSTANT = A +
11
+ B +
12
+ C +
13
+ D
14
+ end
15
+ end
16
+
17
+ MyClass = Struct.new(:a, :b, :c)
18
+ NotMyClass = Struct.new("NotMyClass2", :b, :c)
19
+ MyEmptyStruct = Struct.new
20
+
21
+ # A crazy struct.
22
+ #
23
+ # @attr [String] bar An attr
24
+ # @attr [Number] baz Another attr
25
+ DocstringStruct = Struct.new(:bar, :baz)
@@ -0,0 +1,125 @@
1
+ class Foo
2
+ attr_accessor :ignoreme
3
+
4
+ # IMPLICIT METHOD!
5
+ # @return [String]
6
+ just_a_method_for :implicit0
7
+
8
+ # IMPLICIT METHOD2!
9
+ # @!scope class
10
+ just_a_method_for :implicit1
11
+
12
+ # IMPLICIT METHOD3!
13
+ # @!visibility protected
14
+ just_a_method_for :implicit2
15
+
16
+ # Not recognized
17
+ just_a_method_for :implicit_invalid
18
+
19
+ #
20
+ ## IS NOT RECOGNIZED!
21
+ just_a_method_for :implicit_invalid2
22
+
23
+ # @deprecated don't use this
24
+ just_a_method_for :implicit_invalid3
25
+
26
+ ##
27
+ # IS RECOGNIZED!
28
+ just_a_method_for 'implicit_valid'
29
+
30
+ # @!attribute [r]
31
+ # @return [Numeric] a number
32
+ a_readable_attribute :attr1
33
+
34
+ # @!attribute [w]
35
+ a_writable_attribute :attr2, 'bar'
36
+
37
+ # @!attribute
38
+ default_attribute :attr3
39
+
40
+ # @!attribute custom
41
+ default_attribute :attr4
42
+
43
+ # @!method xyz(a, b, c)
44
+ # The foo method
45
+ # @param [String] a
46
+ # @!visibility protected
47
+ # @!scope class
48
+ foo_bar
49
+
50
+ # @!macro property
51
+ # @!method $1(${3-})
52
+ # A $0 that is awesome.
53
+ # @param $3 first parameter
54
+ # @return [$2] the property $1
55
+ property :name, String, :a, :b, :c
56
+
57
+ # @!macro property
58
+ property :age, Fixnum, :value
59
+
60
+ # This is just for x
61
+ # @!macro [attach] parser
62
+ # @!method $1(opts = {})
63
+ # @return NOTHING!
64
+ parser :x
65
+
66
+ parser :c_parser
67
+
68
+ # Another docstring
69
+ parser :d_parser
70
+
71
+ # @!macro [attach] none
72
+ # @!method none(foo, bar)
73
+ none
74
+
75
+ # @!macro something
76
+ # @!method $1(a, b, c)
77
+ something :qux
78
+
79
+ # @!method qux2(a, b, c)
80
+ something
81
+
82
+ # @!macro
83
+ # $1 $2 $3
84
+ def regular_meth(a, b, c) end
85
+
86
+ # @!macro [new] different
87
+ # @!method $2_name(a = 1)
88
+
89
+ # @!macro different
90
+ implicit_with_different_method_name :wrong, :right
91
+
92
+ # @!scope module
93
+ a_module_function :modfunc1
94
+ end
95
+
96
+ module MyMixin
97
+ # @!macro [attach] special
98
+ # DSL method $1
99
+ def defined_by_mixin; end
100
+ end
101
+
102
+ class Bar
103
+ parser :x_parser
104
+ end
105
+
106
+ class Baz < Foo
107
+ extend MyMixin
108
+ parser :y_parser
109
+ none { }
110
+ defined_by_mixin :mixin_method
111
+ end
112
+
113
+ # @!method my_other_method
114
+ # Docstring for method
115
+ method_that_makes_a_method
116
+
117
+ # @!macro something
118
+ foobarbaz :beep
119
+
120
+ module DSLMethods
121
+ # @macro [attach] dsl_method
122
+ # Returns $2 for $1
123
+ dsl_method :foo, String
124
+ dsl_method :bar, Integer
125
+ end
@@ -0,0 +1,59 @@
1
+ class Testing
2
+ # Ignore yields outside methods
3
+ raise NoMethodError, "reason"
4
+
5
+ # Should document this
6
+ def mymethod
7
+ raise ArgumentError, "Argument is missing"
8
+ end
9
+
10
+ # Don't document this
11
+ def mymethod2
12
+ raise(a)
13
+ end
14
+
15
+ # Don't document this (docstring takes precedence)
16
+ # @raise [A]
17
+ def mymethod3
18
+ raise SomethingElse
19
+ end
20
+
21
+ # Only document the first one (limitation of exc handler)
22
+ def mymethod4
23
+ raise(A)
24
+ raise B, "Argument", somethingelse
25
+ end
26
+
27
+ def mymethod5
28
+ raise YARD::Parser::UndocumentableError
29
+ end
30
+
31
+ def mymethod6
32
+ raise YARD::Handlers.constants("test")
33
+ end
34
+
35
+ def mymethod7
36
+ raise MethodCall('argument')
37
+ end
38
+
39
+ def mymethod8
40
+ raise ExceptionClass.new('blah')
41
+ end
42
+
43
+ def mymethod9
44
+ obj.raise IgnoreMe
45
+ obj.raise(IgnoreMe)
46
+ end
47
+
48
+ def mymethod10
49
+ raise ArgumentError 'Message' # actually a method call
50
+ end
51
+
52
+ def mymethod11
53
+ raise foo('bar')
54
+ end
55
+
56
+ def mymethod12
57
+ raise
58
+ end
59
+ end
@@ -0,0 +1,16 @@
1
+ module A; end
2
+ module B
3
+ extend A
4
+ end
5
+
6
+ module C
7
+ extend self
8
+ end
9
+
10
+ module Q
11
+ module R
12
+ module S
13
+ extend A
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,10 @@
1
+ def a
2
+ if 1
3
+ # ignore this
4
+ def b; end
5
+ end
6
+
7
+ # don't ignore these even though we know they're not executed
8
+ def c; end if false
9
+ def d; end unless true
10
+ end