yard 0.9.5 → 0.9.6

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 (575) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +0 -0
  3. data/CHANGELOG.md +20 -0
  4. data/LEGAL +0 -0
  5. data/LICENSE +0 -0
  6. data/README.md +70 -35
  7. data/Rakefile +10 -39
  8. data/benchmarks/builtins_vs_eval.rb +9 -8
  9. data/benchmarks/concat_vs_join.rb +1 -0
  10. data/benchmarks/erb_vs_erubis.rb +3 -2
  11. data/benchmarks/format_args.rb +1 -0
  12. data/benchmarks/generation.rb +2 -1
  13. data/benchmarks/marshal_vs_dbm.rb +2 -1
  14. data/benchmarks/parsing.rb +1 -1
  15. data/benchmarks/pathname_vs_string.rb +1 -0
  16. data/benchmarks/rdoc_vs_yardoc.rb +2 -1
  17. data/benchmarks/registry_store_types.rb +1 -0
  18. data/benchmarks/ri_vs_yri.rb +1 -0
  19. data/benchmarks/ripper_parser.rb +2 -1
  20. data/benchmarks/splat_vs_flatten.rb +4 -3
  21. data/benchmarks/template_erb.rb +2 -1
  22. data/benchmarks/template_format.rb +1 -0
  23. data/benchmarks/template_profile.rb +4 -3
  24. data/benchmarks/yri_cache.rb +2 -1
  25. data/bin/yard +2 -1
  26. data/bin/yardoc +2 -1
  27. data/bin/yri +2 -1
  28. data/docs/CodeObjects.md +0 -0
  29. data/docs/GettingStarted.md +0 -0
  30. data/docs/Handlers.md +0 -0
  31. data/docs/Overview.md +0 -0
  32. data/docs/Parser.md +0 -0
  33. data/docs/Tags.md +0 -0
  34. data/docs/TagsArch.md +0 -0
  35. data/docs/Templates.md +0 -0
  36. data/docs/WhatsNew.md +0 -0
  37. data/docs/images/code-objects-class-diagram.png +0 -0
  38. data/docs/images/tags-class-diagram.png +0 -0
  39. data/docs/templates/default/fulldoc/html/full_list_tag.erb +0 -0
  40. data/docs/templates/default/fulldoc/html/setup.rb +1 -1
  41. data/docs/templates/default/layout/html/setup.rb +1 -0
  42. data/docs/templates/default/layout/html/tag_list.erb +0 -0
  43. data/docs/templates/default/yard_tags/html/list.erb +0 -0
  44. data/docs/templates/default/yard_tags/html/setup.rb +18 -19
  45. data/docs/templates/plugin.rb +18 -13
  46. data/lib/rubygems_plugin.rb +1 -0
  47. data/lib/yard.rb +5 -6
  48. data/lib/yard/autoload.rb +4 -0
  49. data/lib/yard/cli/command.rb +3 -2
  50. data/lib/yard/cli/command_parser.rb +4 -3
  51. data/lib/yard/cli/config.rb +5 -4
  52. data/lib/yard/cli/diff.rb +39 -39
  53. data/lib/yard/cli/display.rb +2 -1
  54. data/lib/yard/cli/gems.rb +6 -5
  55. data/lib/yard/cli/graph.rb +4 -5
  56. data/lib/yard/cli/help.rb +4 -2
  57. data/lib/yard/cli/i18n.rb +2 -1
  58. data/lib/yard/cli/list.rb +2 -1
  59. data/lib/yard/cli/markup_types.rb +4 -5
  60. data/lib/yard/cli/server.rb +27 -24
  61. data/lib/yard/cli/stats.rb +20 -16
  62. data/lib/yard/cli/yardoc.rb +22 -19
  63. data/lib/yard/cli/yardopts_command.rb +3 -2
  64. data/lib/yard/cli/yri.rb +26 -25
  65. data/lib/yard/code_objects/base.rb +41 -37
  66. data/lib/yard/code_objects/class_object.rb +3 -2
  67. data/lib/yard/code_objects/class_variable_object.rb +2 -1
  68. data/lib/yard/code_objects/constant_object.rb +2 -1
  69. data/lib/yard/code_objects/extended_method_object.rb +2 -1
  70. data/lib/yard/code_objects/extra_file_object.rb +1 -0
  71. data/lib/yard/code_objects/macro_object.rb +10 -10
  72. data/lib/yard/code_objects/method_object.rb +15 -13
  73. data/lib/yard/code_objects/module_object.rb +1 -0
  74. data/lib/yard/code_objects/namespace_mapper.rb +1 -0
  75. data/lib/yard/code_objects/namespace_object.rb +2 -5
  76. data/lib/yard/code_objects/proxy.rb +35 -53
  77. data/lib/yard/code_objects/root_object.rb +3 -1
  78. data/lib/yard/config.rb +8 -9
  79. data/lib/yard/core_ext/array.rb +1 -0
  80. data/lib/yard/core_ext/file.rb +4 -3
  81. data/lib/yard/core_ext/hash.rb +3 -2
  82. data/lib/yard/core_ext/insertion.rb +7 -4
  83. data/lib/yard/core_ext/module.rb +2 -1
  84. data/lib/yard/core_ext/string.rb +5 -4
  85. data/lib/yard/core_ext/symbol_hash.rb +8 -6
  86. data/lib/yard/docstring.rb +26 -15
  87. data/lib/yard/docstring_parser.rb +61 -61
  88. data/lib/yard/gem_index.rb +17 -0
  89. data/lib/yard/globals.rb +6 -2
  90. data/lib/yard/handlers/base.rb +22 -23
  91. data/lib/yard/handlers/c/alias_handler.rb +3 -2
  92. data/lib/yard/handlers/c/attribute_handler.rb +2 -2
  93. data/lib/yard/handlers/c/base.rb +13 -13
  94. data/lib/yard/handlers/c/class_handler.rb +1 -0
  95. data/lib/yard/handlers/c/constant_handler.rb +3 -2
  96. data/lib/yard/handlers/c/handler_methods.rb +24 -25
  97. data/lib/yard/handlers/c/init_handler.rb +4 -2
  98. data/lib/yard/handlers/c/method_handler.rb +7 -6
  99. data/lib/yard/handlers/c/mixin_handler.rb +3 -1
  100. data/lib/yard/handlers/c/module_handler.rb +1 -0
  101. data/lib/yard/handlers/c/override_comment_handler.rb +2 -1
  102. data/lib/yard/handlers/c/path_handler.rb +1 -0
  103. data/lib/yard/handlers/c/struct_handler.rb +1 -0
  104. data/lib/yard/handlers/c/symbol_handler.rb +2 -1
  105. data/lib/yard/handlers/processor.rb +14 -15
  106. data/lib/yard/handlers/ruby/alias_handler.rb +4 -2
  107. data/lib/yard/handlers/ruby/attribute_handler.rb +11 -6
  108. data/lib/yard/handlers/ruby/base.rb +5 -4
  109. data/lib/yard/handlers/ruby/class_condition_handler.rb +4 -3
  110. data/lib/yard/handlers/ruby/class_handler.rb +7 -9
  111. data/lib/yard/handlers/ruby/class_variable_handler.rb +2 -1
  112. data/lib/yard/handlers/ruby/comment_handler.rb +1 -0
  113. data/lib/yard/handlers/ruby/constant_handler.rb +9 -5
  114. data/lib/yard/handlers/ruby/decorator_handler_methods.rb +15 -28
  115. data/lib/yard/handlers/ruby/dsl_handler.rb +1 -0
  116. data/lib/yard/handlers/ruby/dsl_handler_methods.rb +7 -6
  117. data/lib/yard/handlers/ruby/exception_handler.rb +1 -0
  118. data/lib/yard/handlers/ruby/extend_handler.rb +1 -0
  119. data/lib/yard/handlers/ruby/legacy/alias_handler.rb +6 -4
  120. data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +12 -7
  121. data/lib/yard/handlers/ruby/legacy/base.rb +21 -26
  122. data/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +7 -7
  123. data/lib/yard/handlers/ruby/legacy/class_handler.rb +7 -5
  124. data/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +2 -1
  125. data/lib/yard/handlers/ruby/legacy/comment_handler.rb +1 -0
  126. data/lib/yard/handlers/ruby/legacy/constant_handler.rb +2 -1
  127. data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +1 -0
  128. data/lib/yard/handlers/ruby/legacy/exception_handler.rb +2 -1
  129. data/lib/yard/handlers/ruby/legacy/extend_handler.rb +2 -1
  130. data/lib/yard/handlers/ruby/legacy/method_handler.rb +11 -6
  131. data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +5 -5
  132. data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +2 -1
  133. data/lib/yard/handlers/ruby/legacy/module_handler.rb +2 -1
  134. data/lib/yard/handlers/ruby/legacy/private_class_method_handler.rb +2 -1
  135. data/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +2 -1
  136. data/lib/yard/handlers/ruby/legacy/visibility_handler.rb +3 -2
  137. data/lib/yard/handlers/ruby/legacy/yield_handler.rb +1 -0
  138. data/lib/yard/handlers/ruby/method_condition_handler.rb +2 -1
  139. data/lib/yard/handlers/ruby/method_handler.rb +9 -11
  140. data/lib/yard/handlers/ruby/mixin_handler.rb +2 -1
  141. data/lib/yard/handlers/ruby/module_function_handler.rb +2 -1
  142. data/lib/yard/handlers/ruby/module_handler.rb +2 -1
  143. data/lib/yard/handlers/ruby/private_class_method_handler.rb +1 -0
  144. data/lib/yard/handlers/ruby/private_constant_handler.rb +2 -2
  145. data/lib/yard/handlers/ruby/public_class_method_handler.rb +1 -0
  146. data/lib/yard/handlers/ruby/struct_handler_methods.rb +5 -4
  147. data/lib/yard/handlers/ruby/visibility_handler.rb +1 -0
  148. data/lib/yard/handlers/ruby/yield_handler.rb +1 -0
  149. data/lib/yard/i18n/locale.rb +1 -0
  150. data/lib/yard/i18n/message.rb +5 -4
  151. data/lib/yard/i18n/messages.rb +2 -1
  152. data/lib/yard/i18n/po_parser.rb +5 -4
  153. data/lib/yard/i18n/pot_generator.rb +8 -8
  154. data/lib/yard/i18n/text.rb +9 -9
  155. data/lib/yard/logging.rb +9 -6
  156. data/lib/yard/options.rb +8 -7
  157. data/lib/yard/parser/base.rb +3 -2
  158. data/lib/yard/parser/c/c_parser.rb +22 -21
  159. data/lib/yard/parser/c/comment_parser.rb +9 -6
  160. data/lib/yard/parser/c/statement.rb +1 -0
  161. data/lib/yard/parser/ruby/ast_node.rb +20 -18
  162. data/lib/yard/parser/ruby/legacy/ruby_lex.rb +99 -122
  163. data/lib/yard/parser/ruby/legacy/ruby_parser.rb +3 -2
  164. data/lib/yard/parser/ruby/legacy/statement.rb +4 -3
  165. data/lib/yard/parser/ruby/legacy/statement_list.rb +52 -42
  166. data/lib/yard/parser/ruby/legacy/token_list.rb +16 -13
  167. data/lib/yard/parser/ruby/ruby_parser.rb +87 -63
  168. data/lib/yard/parser/ruby/token_resolver.rb +156 -0
  169. data/lib/yard/parser/source_parser.rb +28 -20
  170. data/lib/yard/rake/yardoc_task.rb +3 -3
  171. data/lib/yard/registry.rb +14 -16
  172. data/lib/yard/registry_resolver.rb +36 -20
  173. data/lib/yard/registry_store.rb +19 -15
  174. data/lib/yard/rubygems/backports.rb +2 -0
  175. data/lib/yard/rubygems/backports/LICENSE.txt +0 -0
  176. data/lib/yard/rubygems/backports/MIT.txt +0 -0
  177. data/lib/yard/rubygems/backports/gem.rb +1 -0
  178. data/lib/yard/rubygems/backports/source_index.rb +25 -30
  179. data/lib/yard/rubygems/doc_manager.rb +10 -8
  180. data/lib/yard/rubygems/hook.rb +11 -18
  181. data/lib/yard/rubygems/specification.rb +1 -0
  182. data/lib/yard/serializers/base.rb +5 -2
  183. data/lib/yard/serializers/file_system_serializer.rb +7 -6
  184. data/lib/yard/serializers/process_serializer.rb +2 -2
  185. data/lib/yard/serializers/stdout_serializer.rb +8 -6
  186. data/lib/yard/serializers/yardoc_serializer.rb +31 -26
  187. data/lib/yard/server.rb +2 -1
  188. data/lib/yard/server/adapter.rb +1 -1
  189. data/lib/yard/server/commands/base.rb +15 -2
  190. data/lib/yard/server/commands/display_file_command.rb +2 -2
  191. data/lib/yard/server/commands/display_object_command.rb +6 -3
  192. data/lib/yard/server/commands/frames_command.rb +1 -0
  193. data/lib/yard/server/commands/library_command.rb +50 -14
  194. data/lib/yard/server/commands/library_index_command.rb +5 -4
  195. data/lib/yard/server/commands/list_command.rb +1 -0
  196. data/lib/yard/server/commands/root_request_command.rb +1 -0
  197. data/lib/yard/server/commands/search_command.rb +17 -16
  198. data/lib/yard/server/commands/static_file_command.rb +2 -1
  199. data/lib/yard/server/commands/static_file_helpers.rb +23 -14
  200. data/lib/yard/server/doc_server_helper.rb +15 -1
  201. data/lib/yard/server/doc_server_serializer.rb +3 -5
  202. data/lib/yard/server/library_version.rb +44 -22
  203. data/lib/yard/server/rack_adapter.rb +2 -1
  204. data/lib/yard/server/router.rb +15 -14
  205. data/lib/yard/server/static_caching.rb +1 -0
  206. data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +0 -0
  207. data/lib/yard/server/templates/default/fulldoc/html/images/processing.gif +0 -0
  208. data/lib/yard/server/templates/default/fulldoc/html/js/autocomplete.js +0 -0
  209. data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +0 -0
  210. data/lib/yard/server/templates/default/layout/html/script_setup.erb +0 -0
  211. data/lib/yard/server/templates/default/layout/html/setup.rb +2 -1
  212. data/lib/yard/server/templates/default/method_details/html/permalink.erb +0 -0
  213. data/lib/yard/server/templates/default/method_details/html/setup.rb +1 -0
  214. data/lib/yard/server/templates/doc_server/library_list/html/headers.erb +2 -2
  215. data/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +0 -0
  216. data/lib/yard/server/templates/doc_server/library_list/html/listing.erb +1 -1
  217. data/lib/yard/server/templates/doc_server/library_list/html/setup.rb +2 -1
  218. data/lib/yard/server/templates/doc_server/library_list/html/title.erb +0 -0
  219. data/lib/yard/server/templates/doc_server/processing/html/processing.erb +4 -4
  220. data/lib/yard/server/templates/doc_server/processing/html/setup.rb +2 -1
  221. data/lib/yard/server/templates/doc_server/search/html/search.erb +0 -0
  222. data/lib/yard/server/templates/doc_server/search/html/setup.rb +2 -1
  223. data/lib/yard/server/webrick_adapter.rb +4 -2
  224. data/lib/yard/tags/default_factory.rb +19 -13
  225. data/lib/yard/tags/default_tag.rb +2 -1
  226. data/lib/yard/tags/directives.rb +17 -19
  227. data/lib/yard/tags/library.rb +9 -6
  228. data/lib/yard/tags/option_tag.rb +1 -0
  229. data/lib/yard/tags/overload_tag.rb +6 -4
  230. data/lib/yard/tags/ref_tag.rb +1 -0
  231. data/lib/yard/tags/ref_tag_list.rb +2 -1
  232. data/lib/yard/tags/tag.rb +16 -2
  233. data/lib/yard/tags/tag_format_error.rb +3 -2
  234. data/lib/yard/tags/types_explainer.rb +160 -0
  235. data/lib/yard/templates/engine.rb +3 -2
  236. data/lib/yard/templates/erb_cache.rb +3 -2
  237. data/lib/yard/templates/helpers/base_helper.rb +9 -6
  238. data/lib/yard/templates/helpers/filter_helper.rb +1 -0
  239. data/lib/yard/templates/helpers/html_helper.rb +65 -37
  240. data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +25 -7
  241. data/lib/yard/templates/helpers/markup/rdoc_markdown.rb +2 -1
  242. data/lib/yard/templates/helpers/markup/rdoc_markup.rb +10 -7
  243. data/lib/yard/templates/helpers/markup_helper.rb +12 -13
  244. data/lib/yard/templates/helpers/method_helper.rb +8 -7
  245. data/lib/yard/templates/helpers/module_helper.rb +1 -0
  246. data/lib/yard/templates/helpers/text_helper.rb +16 -11
  247. data/lib/yard/templates/helpers/uml_helper.rb +2 -1
  248. data/lib/yard/templates/section.rb +3 -4
  249. data/lib/yard/templates/template.rb +18 -11
  250. data/lib/yard/templates/template_options.rb +1 -0
  251. data/lib/yard/verifier.rb +2 -0
  252. data/lib/yard/version.rb +2 -1
  253. data/spec/cli/command_parser_spec.rb +7 -7
  254. data/spec/cli/command_spec.rb +2 -2
  255. data/spec/cli/config_spec.rb +3 -4
  256. data/spec/cli/diff_spec.rb +7 -9
  257. data/spec/cli/display_spec.rb +2 -2
  258. data/spec/cli/gems_spec.rb +11 -11
  259. data/spec/cli/graph_spec.rb +4 -3
  260. data/spec/cli/help_spec.rb +3 -3
  261. data/spec/cli/i18n_spec.rb +3 -3
  262. data/spec/cli/list_spec.rb +2 -2
  263. data/spec/cli/markup_types_spec.rb +2 -2
  264. data/spec/cli/server_spec.rb +21 -18
  265. data/spec/cli/stats_spec.rb +23 -22
  266. data/spec/cli/yardoc_spec.rb +49 -47
  267. data/spec/cli/yri_spec.rb +6 -6
  268. data/spec/code_objects/base_spec.rb +6 -4
  269. data/spec/code_objects/class_object_spec.rb +10 -9
  270. data/spec/code_objects/code_object_list_spec.rb +3 -2
  271. data/spec/code_objects/constants_spec.rb +17 -6
  272. data/spec/code_objects/extra_file_object_spec.rb +6 -5
  273. data/spec/code_objects/macro_object_spec.rb +5 -3
  274. data/spec/code_objects/method_object_spec.rb +6 -5
  275. data/spec/code_objects/module_object_spec.rb +3 -2
  276. data/spec/code_objects/namespace_object_spec.rb +10 -9
  277. data/spec/code_objects/proxy_spec.rb +9 -8
  278. data/spec/code_objects/spec_helper.rb +2 -2
  279. data/spec/config_spec.rb +9 -14
  280. data/spec/core_ext/array_spec.rb +2 -3
  281. data/spec/core_ext/file_spec.rb +3 -3
  282. data/spec/core_ext/hash_spec.rb +5 -5
  283. data/spec/core_ext/insertion_spec.rb +2 -2
  284. data/spec/core_ext/module_spec.rb +3 -3
  285. data/spec/core_ext/string_spec.rb +5 -5
  286. data/spec/core_ext/symbol_hash_spec.rb +8 -8
  287. data/spec/docstring_parser_spec.rb +6 -7
  288. data/spec/docstring_spec.rb +30 -3
  289. data/spec/examples.txt +1848 -0
  290. data/spec/handlers/alias_handler_spec.rb +2 -1
  291. data/spec/handlers/attribute_handler_spec.rb +7 -5
  292. data/spec/handlers/base_spec.rb +9 -8
  293. data/spec/handlers/c/alias_handler_spec.rb +2 -1
  294. data/spec/handlers/c/attribute_handler_spec.rb +2 -1
  295. data/spec/handlers/c/class_handler_spec.rb +2 -1
  296. data/spec/handlers/c/constant_handler_spec.rb +5 -4
  297. data/spec/handlers/c/init_handler_spec.rb +2 -1
  298. data/spec/handlers/c/method_handler_spec.rb +2 -1
  299. data/spec/handlers/c/mixin_handler_spec.rb +2 -1
  300. data/spec/handlers/c/module_handler_spec.rb +2 -1
  301. data/spec/handlers/c/override_comment_handler_spec.rb +2 -1
  302. data/spec/handlers/c/path_handler_spec.rb +2 -1
  303. data/spec/handlers/c/spec_helper.rb +1 -1
  304. data/spec/handlers/c/struct_handler_spec.rb +3 -2
  305. data/spec/handlers/class_condition_handler_spec.rb +3 -2
  306. data/spec/handlers/class_handler_spec.rb +3 -2
  307. data/spec/handlers/class_method_handler_shared_examples.rb +9 -8
  308. data/spec/handlers/class_variable_handler_spec.rb +3 -2
  309. data/spec/handlers/constant_handler_spec.rb +28 -3
  310. data/spec/handlers/decorator_handler_methods_spec.rb +47 -59
  311. data/spec/handlers/dsl_handler_spec.rb +3 -2
  312. data/spec/handlers/examples/alias_handler_001.rb.txt +0 -0
  313. data/spec/handlers/examples/attribute_handler_001.rb.txt +0 -0
  314. data/spec/handlers/examples/class_condition_handler_001.rb.txt +0 -0
  315. data/spec/handlers/examples/class_handler_001.rb.txt +0 -0
  316. data/spec/handlers/examples/class_variable_handler_001.rb.txt +0 -0
  317. data/spec/handlers/examples/constant_handler_001.rb.txt +0 -0
  318. data/spec/handlers/examples/dsl_handler_001.rb.txt +0 -0
  319. data/spec/handlers/examples/exception_handler_001.rb.txt +0 -0
  320. data/spec/handlers/examples/extend_handler_001.rb.txt +0 -0
  321. data/spec/handlers/examples/method_condition_handler_001.rb.txt +0 -0
  322. data/spec/handlers/examples/method_handler_001.rb.txt +2 -0
  323. data/spec/handlers/examples/mixin_handler_001.rb.txt +0 -0
  324. data/spec/handlers/examples/module_handler_001.rb.txt +0 -0
  325. data/spec/handlers/examples/private_constant_handler_001.rb.txt +0 -0
  326. data/spec/handlers/examples/process_handler_001.rb.txt +0 -0
  327. data/spec/handlers/examples/visibility_handler_001.rb.txt +0 -0
  328. data/spec/handlers/examples/yield_handler_001.rb.txt +0 -0
  329. data/spec/handlers/exception_handler_spec.rb +3 -2
  330. data/spec/handlers/extend_handler_spec.rb +2 -1
  331. data/spec/handlers/legacy_base_spec.rb +5 -5
  332. data/spec/handlers/method_condition_handler_spec.rb +3 -2
  333. data/spec/handlers/method_handler_spec.rb +7 -1
  334. data/spec/handlers/mixin_handler_spec.rb +3 -2
  335. data/spec/handlers/module_function_handler_spec.rb +2 -1
  336. data/spec/handlers/module_handler_spec.rb +3 -2
  337. data/spec/handlers/private_class_method_handler_spec.rb +2 -1
  338. data/spec/handlers/private_constant_handler_spec.rb +2 -1
  339. data/spec/handlers/processor_spec.rb +2 -1
  340. data/spec/handlers/public_class_method_handler_spec.rb +2 -1
  341. data/spec/handlers/ruby/base_spec.rb +6 -5
  342. data/spec/handlers/ruby/legacy/base_spec.rb +4 -4
  343. data/spec/handlers/spec_helper.rb +3 -3
  344. data/spec/handlers/visibility_handler_spec.rb +3 -2
  345. data/spec/handlers/yield_handler_spec.rb +3 -2
  346. data/spec/i18n/locale_spec.rb +3 -3
  347. data/spec/i18n/message_spec.rb +2 -2
  348. data/spec/i18n/messages_spec.rb +3 -3
  349. data/spec/i18n/pot_generator_spec.rb +34 -34
  350. data/spec/i18n/text_spec.rb +16 -12
  351. data/spec/logging_spec.rb +2 -2
  352. data/spec/options_spec.rb +9 -9
  353. data/spec/parser/base_spec.rb +2 -2
  354. data/spec/parser/c_parser_spec.rb +5 -4
  355. data/spec/parser/examples/array.c.txt +0 -0
  356. data/spec/parser/examples/example1.rb.txt +0 -0
  357. data/spec/parser/examples/extrafile.c.txt +0 -0
  358. data/spec/parser/examples/multifile.c.txt +0 -0
  359. data/spec/parser/examples/override.c.txt +0 -0
  360. data/spec/parser/examples/parse_in_order_001.rb.txt +0 -0
  361. data/spec/parser/examples/parse_in_order_002.rb.txt +0 -0
  362. data/spec/parser/examples/tag_handler_001.rb.txt +0 -0
  363. data/spec/parser/ruby/ast_node_spec.rb +7 -7
  364. data/spec/parser/ruby/legacy/statement_list_spec.rb +7 -7
  365. data/spec/parser/ruby/legacy/token_list_spec.rb +4 -4
  366. data/spec/parser/ruby/ruby_parser_spec.rb +42 -20
  367. data/spec/parser/ruby/token_resolver_spec.rb +165 -0
  368. data/spec/parser/source_parser_spec.rb +18 -18
  369. data/spec/parser/tag_parsing_spec.rb +2 -2
  370. data/spec/rake/yardoc_task_spec.rb +4 -4
  371. data/spec/registry_spec.rb +62 -56
  372. data/spec/registry_store_spec.rb +7 -7
  373. data/spec/rubygems/doc_manager_spec.rb +2 -2
  374. data/spec/serializers/data/serialized_yardoc/checksums +0 -0
  375. data/spec/serializers/data/serialized_yardoc/objects/Foo.dat +0 -0
  376. data/spec/serializers/data/serialized_yardoc/objects/Foo/bar_i.dat +0 -0
  377. data/spec/serializers/data/serialized_yardoc/objects/Foo/baz_i.dat +0 -0
  378. data/spec/serializers/data/serialized_yardoc/objects/root.dat +0 -0
  379. data/spec/serializers/data/serialized_yardoc/proxy_types +0 -0
  380. data/spec/serializers/file_system_serializer_spec.rb +8 -7
  381. data/spec/serializers/spec_helper.rb +2 -2
  382. data/spec/serializers/yardoc_serializer_spec.rb +5 -4
  383. data/spec/server/adapter_spec.rb +3 -2
  384. data/spec/server/commands/base_spec.rb +15 -11
  385. data/spec/server/commands/library_command_spec.rb +2 -2
  386. data/spec/server/doc_server_helper_spec.rb +4 -3
  387. data/spec/server/doc_server_serializer_spec.rb +3 -2
  388. data/spec/server/rack_adapter_spec.rb +3 -2
  389. data/spec/server/router_spec.rb +3 -2
  390. data/spec/server/spec_helper.rb +2 -2
  391. data/spec/server/static_caching_spec.rb +4 -3
  392. data/spec/server/webrick_servlet_spec.rb +5 -4
  393. data/spec/server_spec.rb +3 -3
  394. data/spec/spec_helper.rb +94 -21
  395. data/spec/tags/default_factory_spec.rb +10 -4
  396. data/spec/tags/default_tag_spec.rb +3 -3
  397. data/spec/tags/directives_spec.rb +12 -12
  398. data/spec/tags/library_spec.rb +16 -2
  399. data/spec/tags/overload_tag_spec.rb +4 -4
  400. data/spec/tags/ref_tag_list_spec.rb +3 -3
  401. data/spec/tags/types_explainer_spec.rb +200 -0
  402. data/spec/templates/class_spec.rb +2 -1
  403. data/spec/templates/constant_spec.rb +3 -2
  404. data/spec/templates/engine_spec.rb +4 -3
  405. data/spec/templates/examples/class001.html +0 -0
  406. data/spec/templates/examples/class001.txt +0 -0
  407. data/spec/templates/examples/class002.html +0 -0
  408. data/spec/templates/examples/constant001.txt +0 -0
  409. data/spec/templates/examples/constant002.txt +0 -0
  410. data/spec/templates/examples/constant003.txt +0 -0
  411. data/spec/templates/examples/method001.html +0 -0
  412. data/spec/templates/examples/method001.txt +0 -0
  413. data/spec/templates/examples/method002.html +0 -0
  414. data/spec/templates/examples/method002.txt +0 -0
  415. data/spec/templates/examples/method003.html +0 -0
  416. data/spec/templates/examples/method003.txt +0 -0
  417. data/spec/templates/examples/method004.html +0 -0
  418. data/spec/templates/examples/method004.txt +0 -0
  419. data/spec/templates/examples/method005.html +0 -0
  420. data/spec/templates/examples/method005.txt +0 -0
  421. data/spec/templates/examples/method006.html +108 -0
  422. data/spec/templates/examples/method006.txt +20 -0
  423. data/spec/templates/examples/module001.dot +0 -0
  424. data/spec/templates/examples/module001.html +0 -0
  425. data/spec/templates/examples/module001.txt +0 -0
  426. data/spec/templates/examples/module002.html +0 -0
  427. data/spec/templates/examples/module003.html +0 -0
  428. data/spec/templates/examples/module004.html +0 -0
  429. data/spec/templates/examples/tag001.txt +0 -0
  430. data/spec/templates/helpers/base_helper_spec.rb +5 -5
  431. data/spec/templates/helpers/html_helper_spec.rb +64 -60
  432. data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +17 -6
  433. data/spec/templates/helpers/markup/rdoc_markup_spec.rb +11 -13
  434. data/spec/templates/helpers/markup_helper_spec.rb +2 -2
  435. data/spec/templates/helpers/method_helper_spec.rb +3 -3
  436. data/spec/templates/helpers/module_helper_spec.rb +2 -2
  437. data/spec/templates/helpers/shared_signature_examples.rb +2 -1
  438. data/spec/templates/helpers/text_helper_spec.rb +7 -6
  439. data/spec/templates/method_spec.rb +18 -2
  440. data/spec/templates/module_spec.rb +4 -3
  441. data/spec/templates/onefile_spec.rb +8 -6
  442. data/spec/templates/section_spec.rb +3 -2
  443. data/spec/templates/spec_helper.rb +5 -2
  444. data/spec/templates/tag_spec.rb +3 -2
  445. data/spec/templates/template_spec.rb +15 -14
  446. data/spec/verifier_spec.rb +3 -3
  447. data/templates/default/class/dot/setup.rb +2 -1
  448. data/templates/default/class/dot/superklass.erb +0 -0
  449. data/templates/default/class/html/constructor_details.erb +0 -0
  450. data/templates/default/class/html/setup.rb +2 -1
  451. data/templates/default/class/html/subclasses.erb +0 -0
  452. data/templates/default/class/setup.rb +6 -6
  453. data/templates/default/class/text/setup.rb +2 -1
  454. data/templates/default/class/text/subclasses.erb +0 -0
  455. data/templates/default/constant/text/header.erb +0 -0
  456. data/templates/default/constant/text/setup.rb +1 -0
  457. data/templates/default/docstring/html/abstract.erb +0 -0
  458. data/templates/default/docstring/html/deprecated.erb +0 -0
  459. data/templates/default/docstring/html/index.erb +0 -0
  460. data/templates/default/docstring/html/note.erb +0 -0
  461. data/templates/default/docstring/html/private.erb +0 -0
  462. data/templates/default/docstring/html/returns_void.erb +0 -0
  463. data/templates/default/docstring/html/text.erb +0 -0
  464. data/templates/default/docstring/html/todo.erb +0 -0
  465. data/templates/default/docstring/setup.rb +4 -3
  466. data/templates/default/docstring/text/abstract.erb +0 -0
  467. data/templates/default/docstring/text/deprecated.erb +0 -0
  468. data/templates/default/docstring/text/index.erb +0 -0
  469. data/templates/default/docstring/text/note.erb +0 -0
  470. data/templates/default/docstring/text/private.erb +0 -0
  471. data/templates/default/docstring/text/returns_void.erb +0 -0
  472. data/templates/default/docstring/text/text.erb +0 -0
  473. data/templates/default/docstring/text/todo.erb +0 -0
  474. data/templates/default/fulldoc/html/css/common.css +0 -0
  475. data/templates/default/fulldoc/html/css/full_list.css +0 -0
  476. data/templates/default/fulldoc/html/css/style.css +31 -20
  477. data/templates/default/fulldoc/html/frames.erb +0 -0
  478. data/templates/default/fulldoc/html/full_list.erb +2 -2
  479. data/templates/default/fulldoc/html/full_list_class.erb +0 -0
  480. data/templates/default/fulldoc/html/full_list_file.erb +0 -0
  481. data/templates/default/fulldoc/html/full_list_method.erb +0 -0
  482. data/templates/default/fulldoc/html/js/app.js +3 -3
  483. data/templates/default/fulldoc/html/js/full_list.js +0 -0
  484. data/templates/default/fulldoc/html/js/jquery.js +0 -0
  485. data/templates/default/fulldoc/html/setup.rb +22 -23
  486. data/templates/default/layout/dot/header.erb +0 -0
  487. data/templates/default/layout/dot/setup.rb +1 -0
  488. data/templates/default/layout/html/breadcrumb.erb +0 -0
  489. data/templates/default/layout/html/files.erb +0 -0
  490. data/templates/default/layout/html/footer.erb +0 -0
  491. data/templates/default/layout/html/headers.erb +2 -2
  492. data/templates/default/layout/html/index.erb +0 -0
  493. data/templates/default/layout/html/layout.erb +1 -3
  494. data/templates/default/layout/html/listing.erb +0 -0
  495. data/templates/default/layout/html/objects.erb +0 -0
  496. data/templates/default/layout/html/script_setup.erb +0 -0
  497. data/templates/default/layout/html/search.erb +0 -0
  498. data/templates/default/layout/html/setup.rb +21 -19
  499. data/templates/default/method/html/header.erb +0 -0
  500. data/templates/default/method/setup.rb +2 -1
  501. data/templates/default/method/text/header.erb +0 -0
  502. data/templates/default/method_details/html/header.erb +0 -0
  503. data/templates/default/method_details/html/method_signature.erb +0 -0
  504. data/templates/default/method_details/html/source.erb +0 -0
  505. data/templates/default/method_details/setup.rb +1 -0
  506. data/templates/default/method_details/text/header.erb +0 -0
  507. data/templates/default/method_details/text/method_signature.erb +0 -0
  508. data/templates/default/method_details/text/setup.rb +3 -2
  509. data/templates/default/module/dot/child.erb +0 -0
  510. data/templates/default/module/dot/dependencies.erb +0 -0
  511. data/templates/default/module/dot/header.erb +0 -0
  512. data/templates/default/module/dot/info.erb +0 -0
  513. data/templates/default/module/dot/setup.rb +2 -1
  514. data/templates/default/module/html/attribute_details.erb +0 -0
  515. data/templates/default/module/html/attribute_summary.erb +0 -0
  516. data/templates/default/module/html/box_info.erb +0 -0
  517. data/templates/default/module/html/children.erb +0 -0
  518. data/templates/default/module/html/constant_summary.erb +0 -0
  519. data/templates/default/module/html/defines.erb +0 -0
  520. data/templates/default/module/html/header.erb +0 -0
  521. data/templates/default/module/html/inherited_attributes.erb +0 -0
  522. data/templates/default/module/html/inherited_constants.erb +0 -0
  523. data/templates/default/module/html/inherited_methods.erb +0 -0
  524. data/templates/default/module/html/item_summary.erb +0 -0
  525. data/templates/default/module/html/method_details_list.erb +0 -0
  526. data/templates/default/module/html/method_summary.erb +0 -0
  527. data/templates/default/module/html/methodmissing.erb +0 -0
  528. data/templates/default/module/html/pre_docstring.erb +0 -0
  529. data/templates/default/module/setup.rb +24 -26
  530. data/templates/default/module/text/children.erb +0 -0
  531. data/templates/default/module/text/class_meths_list.erb +0 -0
  532. data/templates/default/module/text/extends.erb +0 -0
  533. data/templates/default/module/text/header.erb +0 -0
  534. data/templates/default/module/text/includes.erb +0 -0
  535. data/templates/default/module/text/instance_meths_list.erb +0 -0
  536. data/templates/default/module/text/setup.rb +2 -1
  537. data/templates/default/onefile/html/files.erb +0 -0
  538. data/templates/default/onefile/html/headers.erb +0 -0
  539. data/templates/default/onefile/html/layout.erb +3 -3
  540. data/templates/default/onefile/html/readme.erb +0 -0
  541. data/templates/default/onefile/html/setup.rb +9 -8
  542. data/templates/default/root/dot/child.erb +0 -0
  543. data/templates/default/root/dot/setup.rb +3 -2
  544. data/templates/default/root/html/setup.rb +2 -1
  545. data/templates/default/tags/html/example.erb +0 -0
  546. data/templates/default/tags/html/index.erb +0 -0
  547. data/templates/default/tags/html/option.erb +1 -1
  548. data/templates/default/tags/html/overload.erb +0 -0
  549. data/templates/default/tags/html/see.erb +0 -0
  550. data/templates/default/tags/html/tag.erb +1 -1
  551. data/templates/default/tags/setup.rb +7 -5
  552. data/templates/default/tags/text/example.erb +0 -0
  553. data/templates/default/tags/text/index.erb +0 -0
  554. data/templates/default/tags/text/option.erb +1 -1
  555. data/templates/default/tags/text/overload.erb +0 -0
  556. data/templates/default/tags/text/see.erb +0 -0
  557. data/templates/default/tags/text/tag.erb +2 -2
  558. data/templates/guide/class/html/setup.rb +1 -0
  559. data/templates/guide/docstring/html/setup.rb +1 -0
  560. data/templates/guide/fulldoc/html/css/style.css +0 -0
  561. data/templates/guide/fulldoc/html/js/app.js +0 -0
  562. data/templates/guide/fulldoc/html/setup.rb +7 -6
  563. data/templates/guide/layout/html/layout.erb +0 -0
  564. data/templates/guide/layout/html/setup.rb +2 -5
  565. data/templates/guide/method/html/header.erb +0 -0
  566. data/templates/guide/method/html/setup.rb +5 -4
  567. data/templates/guide/module/html/header.erb +0 -0
  568. data/templates/guide/module/html/method_list.erb +0 -0
  569. data/templates/guide/module/html/setup.rb +2 -1
  570. data/templates/guide/onefile/html/files.erb +0 -0
  571. data/templates/guide/onefile/html/setup.rb +1 -0
  572. data/templates/guide/onefile/html/toc.erb +0 -0
  573. data/templates/guide/tags/html/setup.rb +1 -0
  574. data/yard.gemspec +2 -1
  575. metadata +10 -2
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + '/spec_helper'
2
3
 
3
- describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}AliasHandler" do
4
+ RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}AliasHandler" do
4
5
  before(:all) { parse_file :alias_handler_001, __FILE__ }
5
6
 
6
7
  it "throws alias into namespace object list" do
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + '/spec_helper'
2
3
 
3
- describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}AttributeHandler" do
4
+ RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}AttributeHandler" do
4
5
  before(:all) { parse_file :attribute_handler_001, __FILE__ }
5
6
 
6
7
  def read_write(namespace, name, read, write, scope = :instance)
7
- rname, wname = namespace.to_s+"#"+name.to_s, namespace.to_s+"#"+name.to_s+"="
8
+ rname = namespace.to_s + "#" + name.to_s
9
+ wname = namespace.to_s + "#" + name.to_s + "="
8
10
  if read
9
11
  expect(Registry.at(rname)).to be_instance_of(CodeObjects::MethodObject)
10
12
  else
@@ -18,8 +20,8 @@ describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}AttributeHandl
18
20
  end
19
21
 
20
22
  attrs = Registry.at(namespace).attributes[scope][name]
21
- expect(attrs[:read]).to eq (read ? Registry.at(rname) : nil)
22
- expect(attrs[:write]).to eq (write ? Registry.at(wname) : nil)
23
+ expect(attrs[:read]).to eq(read ? Registry.at(rname) : nil)
24
+ expect(attrs[:write]).to eq(write ? Registry.at(wname) : nil)
23
25
  end
24
26
 
25
27
  it "parses attributes inside modules too" do
@@ -91,4 +93,4 @@ describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}AttributeHandl
91
93
  it "maintains visibility for attr_reader" do
92
94
  expect(Registry.at('D#parser').visibility).to eq :protected
93
95
  end
94
- end
96
+ end
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + '/spec_helper'
2
3
  require 'ostruct'
3
4
 
4
5
  include Parser
5
6
 
6
- describe YARD::Handlers::Base do
7
+ RSpec.describe YARD::Handlers::Base do
7
8
  describe "#handles and inheritance" do
8
9
  before do
9
10
  allow(Handlers::Base).to receive(:inherited)
@@ -160,9 +161,9 @@ describe YARD::Handlers::Base do
160
161
  def create_handler(stmts, parser_type)
161
162
  $handler_counter ||= 0
162
163
  sklass = parser_type == :ruby ? "Base" : "Legacy::Base"
163
- instance_eval(<<-eof)
164
+ instance_eval(<<-eof, __FILE__, __LINE__ + 1)
164
165
  class ::InFileHandler#{$handler_counter += 1} < Handlers::Ruby::#{sklass}
165
- handles /^class/
166
+ handles(/^class/)
166
167
  #{stmts}
167
168
  def process; MethodObject.new(:root, :FOO) end
168
169
  end
@@ -175,7 +176,7 @@ describe YARD::Handlers::Base do
175
176
  create_handler(stmts, parser_type)
176
177
  parse(file, parser_type)
177
178
  expect(Registry.at('#FOO')).send(creates ? :not_to : :to, be_nil)
178
- Handlers::Base.subclasses.delete_if {|k,v| k.to_s =~ /^InFileHandler/ }
179
+ Handlers::Base.subclasses.delete_if {|k, _v| k.to_s =~ /^InFileHandler/ }
179
180
  end
180
181
 
181
182
  [:ruby, :ruby18].each do |parser_type|
@@ -198,13 +199,13 @@ describe YARD::Handlers::Base do
198
199
  end
199
200
 
200
201
  it "allows a Regexp as argument and test against full path" do
201
- test_handler 'file_a.rbx', 'in_file /\.rbx$/', true, parser_type
202
- test_handler '/path/to/file_a.rbx', 'in_file /\/to\/file_/', true, parser_type
203
- test_handler '/path/to/file_a.rbx', 'in_file /^\/path/', true, parser_type
202
+ test_handler 'file_a.rbx', 'in_file(/\.rbx$/)', true, parser_type
203
+ test_handler '/path/to/file_a.rbx', 'in_file(/\/to\/file_/)', true, parser_type
204
+ test_handler '/path/to/file_a.rbx', 'in_file(/^\/path/)', true, parser_type
204
205
  end
205
206
 
206
207
  it "allows multiple in_file declarations" do
207
- stmts = 'in_file "x"; in_file /y/; in_file "foo.rb"'
208
+ stmts = 'in_file "x"; in_file(/y/); in_file "foo.rb"'
208
209
  test_handler 'foo.rb', stmts, true, parser_type
209
210
  test_handler 'xyzzy.rb', stmts, true, parser_type
210
211
  test_handler 'x', stmts, true, parser_type
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + "/spec_helper"
2
3
 
3
- describe YARD::Handlers::C::AliasHandler do
4
+ RSpec.describe YARD::Handlers::C::AliasHandler do
4
5
  it "allows defining of aliases (rb_define_alias)" do
5
6
  parse <<-eof
6
7
  /* FOO */
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + "/spec_helper"
2
3
 
3
- describe YARD::Handlers::C::AttributeHandler do
4
+ RSpec.describe YARD::Handlers::C::AttributeHandler do
4
5
  def run(read, write, commented = nil)
5
6
  parse <<-eof
6
7
  /* FOO */
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + "/spec_helper"
2
3
 
3
- describe YARD::Handlers::C::ClassHandler do
4
+ RSpec.describe YARD::Handlers::C::ClassHandler do
4
5
  it "registers classes" do
5
6
  parse_init 'cFoo = rb_define_class("Foo", rb_cObject);'
6
7
  expect(Registry.at('Foo').type).to eq :class
@@ -1,14 +1,15 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + "/spec_helper"
2
3
 
3
- describe YARD::Handlers::C::ConstantHandler do
4
+ RSpec.describe YARD::Handlers::C::ConstantHandler do
4
5
  it "registers constants" do
5
6
  parse_init <<-eof
6
7
  mFoo = rb_define_module("Foo");
7
8
  rb_define_const(mFoo, "FOO", ID2SYM(100));
8
9
  rb_define_global_const("BAR", ID2SYM(100));
9
10
  eof
10
- expect( Registry.at('Foo::FOO').type).to eq :constant
11
- expect( Registry.at('BAR').type).to eq :constant
11
+ expect(Registry.at('Foo::FOO').type).to eq :constant
12
+ expect(Registry.at('BAR').type).to eq :constant
12
13
  end
13
14
 
14
15
  it "looks for override comments" do
@@ -67,4 +68,4 @@ describe YARD::Handlers::C::ConstantHandler do
67
68
  expect(foo.value).to eq '100:x:y'
68
69
  expect(foo.docstring).to eq 'foobar:x!'
69
70
  end
70
- end
71
+ end
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + "/spec_helper"
2
3
 
3
- describe YARD::Handlers::C::InitHandler do
4
+ RSpec.describe YARD::Handlers::C::InitHandler do
4
5
  it "adds documentation in Init_ClassName() to ClassName" do
5
6
  parse(<<-eof)
6
7
  // Bar!
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + "/spec_helper"
2
3
 
3
- describe YARD::Handlers::C::MethodHandler do
4
+ RSpec.describe YARD::Handlers::C::MethodHandler do
4
5
  it "registers methods" do
5
6
  parse_init <<-eof
6
7
  mFoo = rb_define_module("Foo");
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + "/spec_helper"
2
3
 
3
- describe YARD::Handlers::C::MixinHandler do
4
+ RSpec.describe YARD::Handlers::C::MixinHandler do
4
5
  it "adds includes to modules or classes" do
5
6
  parse_init <<-eof
6
7
  mFoo = rb_define_module("Foo");
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + "/spec_helper"
2
3
 
3
- describe YARD::Handlers::C::ClassHandler do
4
+ RSpec.describe YARD::Handlers::C::ClassHandler do
4
5
  it "registers modules" do
5
6
  parse_init 'mFoo = rb_define_module("Foo");'
6
7
  expect(Registry.at('Foo').type).to eq :module
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + "/spec_helper"
2
3
 
3
- describe YARD::Handlers::C::OverrideCommentHandler do
4
+ RSpec.describe YARD::Handlers::C::OverrideCommentHandler do
4
5
  [:class, :module].each do |type|
5
6
  it "handles Document-#{type}" do
6
7
  parse(<<-eof)
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + "/spec_helper"
2
3
 
3
- describe YARD::Handlers::C::PathHandler do
4
+ RSpec.describe YARD::Handlers::C::PathHandler do
4
5
  it "tracks variable names defined under namespaces" do
5
6
  parse_init <<-eof
6
7
  mFoo = rb_define_module("Foo");
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ # frozen_string_literal: true
2
2
 
3
3
  def parse(src, file = '(stdin)')
4
4
  YARD::Registry.clear
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + '/spec_helper'
2
3
 
3
- describe YARD::Handlers::C::StructHandler do
4
+ RSpec.describe YARD::Handlers::C::StructHandler do
4
5
  after { Registry.clear }
5
6
 
6
7
  it "handles Struct class definitions" do
@@ -12,4 +13,4 @@ describe YARD::Handlers::C::StructHandler do
12
13
  expect(Registry.at('Range').type).to eq :class
13
14
  expect(Registry.at('Range').superclass).to eq P(:Foo)
14
15
  end
15
- end
16
+ end
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + '/spec_helper'
2
3
 
3
- describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ClassConditionHandler" do
4
+ RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ClassConditionHandler" do
4
5
  before(:all) { parse_file :class_condition_handler_001, __FILE__ }
5
6
 
6
7
  def verify_method(*names)
@@ -64,4 +65,4 @@ describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ClassCondition
64
65
  eof
65
66
  no_undoc_error "if caller.none? { |l| l =~ %r{lib/rails/generators\\.rb:(\\d+):in `lookup!'$} }; end"
66
67
  end
67
- end
68
+ end
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
3
 
3
- describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ClassHandler" do
4
+ RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ClassHandler" do
4
5
  before(:all) { parse_file :class_handler_001, __FILE__ }
5
6
 
6
7
  it "parses a class block with docstring" do
@@ -243,4 +244,4 @@ describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ClassHandler"
243
244
  it "handles inheritance from 'self'" do
244
245
  expect(Registry.at('Outer1::Inner1').superclass).to eq Registry.at('Outer1')
245
246
  end
246
- end
247
+ end
@@ -1,9 +1,10 @@
1
- shared_examples "class method visibility decorator" do
1
+ # frozen_string_literal: true
2
+ RSpec.shared_examples "class method visibility decorator" do
2
3
  # Use let(:visibility) to specify the name of the x_class_method
3
4
  # visibility decorator to test.
4
5
 
5
6
  describe do
6
- before {
7
+ before do
7
8
  StubbedSourceParser.parse_string <<-CODE
8
9
  class A
9
10
  def self.b; end
@@ -15,7 +16,7 @@ shared_examples "class method visibility decorator" do
15
16
  #{visibility}_class_method("e")
16
17
  end
17
18
  CODE
18
- }
19
+ end
19
20
 
20
21
  it "handles private_class_method statement" do
21
22
  expect(Registry.at('A.c').visibility).to eq visibility
@@ -42,7 +43,7 @@ shared_examples "class method visibility decorator" do
42
43
  end
43
44
 
44
45
  describe "handles reopened class" do
45
- before {
46
+ before do
46
47
  StubbedSourceParser.parse_string <<-CODE
47
48
  class SingletonClass
48
49
 
@@ -78,7 +79,7 @@ shared_examples "class method visibility decorator" do
78
79
 
79
80
  end
80
81
  CODE
81
- }
82
+ end
82
83
 
83
84
  specify do
84
85
  expect(Registry.at('SingletonClass.foo').visibility).not_to eq visibility
@@ -94,7 +95,7 @@ shared_examples "class method visibility decorator" do
94
95
  # Valid as of Ruby 2.1.0:
95
96
  # private_class_method def self.foo; end
96
97
 
97
- let(:code) {
98
+ let(:code) do
98
99
  <<-CODE
99
100
  class SingletonClass
100
101
  # Valid Ruby 2.1.0 syntax.
@@ -103,7 +104,7 @@ shared_examples "class method visibility decorator" do
103
104
  end
104
105
  end
105
106
  CODE
106
- }
107
+ end
107
108
 
108
109
  let(:method_def) { "#{visibility}_class_method def self.foo param1, param2" }
109
110
 
@@ -114,7 +115,7 @@ shared_examples "class method visibility decorator" do
114
115
  end
115
116
 
116
117
  it "handles parameters correctly" do
117
- expect(subject.parameters.map { |p| p.first }).to eq ['param1', 'param2']
118
+ expect(subject.parameters.map(&:first)).to eq ['param1', 'param2']
118
119
  end
119
120
 
120
121
  it "attaches documentation to method definition" do
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + '/spec_helper'
2
3
 
3
- describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ClassVariableHandler" do
4
+ RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ClassVariableHandler" do
4
5
  before(:all) { parse_file :class_variable_handler_001, __FILE__ }
5
6
 
6
7
  it "does not parse class variables inside methods" do
@@ -8,4 +9,4 @@ describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ClassVariableH
8
9
  expect(obj.source).to eq "@@somevar = \"hello\""
9
10
  expect(obj.value).to eq '"hello"'
10
11
  end
11
- end
12
+ end
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + '/spec_helper'
2
3
 
3
- describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ConstantHandler" do
4
+ RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ConstantHandler" do
4
5
  before(:all) { parse_file :constant_handler_001, __FILE__ }
5
6
 
6
7
  it "does not parse constants inside methods" do
@@ -12,7 +13,7 @@ describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ConstantHandle
12
13
  end
13
14
 
14
15
  it "maintains newlines" do
15
- expect(Registry.at("A::B::MYCONSTANT").value.gsub("\r", "")).to eq "A +\nB +\nC +\nD"
16
+ expect(Registry.at("A::B::MYCONSTANT").value.delete("\r")).to eq "A +\nB +\nC +\nD"
16
17
  end
17
18
 
18
19
  it "turns Const = Struct.new(:sym) into class Const with attr :sym" do
@@ -73,4 +74,28 @@ describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ConstantHandle
73
74
  eof
74
75
  end
75
76
  end unless LEGACY_PARSER
76
- end
77
+
78
+ it "allows constant to have same name as constant in parent namespace" do
79
+ YARD.parse_string <<-eof
80
+ module A
81
+ class C; end
82
+ module B; C = 1 end
83
+ end
84
+ eof
85
+ expect(log.io.string).to eq ""
86
+ expect(Registry.at('A::B::C').type).to eq :constant
87
+ end
88
+
89
+ it "detects compound constant names" do
90
+ YARD.parse_string <<-eof
91
+ module A
92
+ class AA; end
93
+ AA::B = true
94
+ end
95
+ A::AA::C = true
96
+ eof
97
+
98
+ expect(Registry.at('A::AA::B').type).to eq :constant
99
+ expect(Registry.at('A::AA::C').type).to eq :constant
100
+ end if HAVE_RIPPER
101
+ end
@@ -1,8 +1,8 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + '/spec_helper'
2
3
 
3
- describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
4
+ RSpec.describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
4
5
  describe "#process_decorator" do
5
-
6
6
  # Create a YARD decorator handler.
7
7
  # @param name [Symbol] name of the mock decorator
8
8
  def create_test_handler(name)
@@ -22,11 +22,11 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
22
22
  # process_decorator params written like this due to Ruby 1.8.
23
23
  # A modern handler should splat local_nodes.
24
24
  local_data[:return] =
25
- process_decorator *(local_nodes + [local_mock_handler_opts]) do |method, node, name|
26
- local_data[:method] = method
27
- local_data[:node] = node
28
- local_data[:name] = name
29
- end
25
+ process_decorator(*(local_nodes + [local_mock_handler_opts])) do |method, node, mname|
26
+ local_data[:method] = method
27
+ local_data[:node] = node
28
+ local_data[:name] = mname
29
+ end
30
30
  end
31
31
  end
32
32
  end
@@ -35,10 +35,10 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
35
35
  # @param symbols [Symbol] method names
36
36
  # @return [String] method definition code
37
37
  def make_defs(*symbols)
38
- symbols.map { |s|
38
+ symbols.map do |s|
39
39
  s = "self.#{s}" if mock_handler_opts[:scope] == :class
40
40
  "def #{s}; end"
41
- }.join("\n")
41
+ end.join("\n")
42
42
  end
43
43
 
44
44
  # Generate an AST for the given source code string.
@@ -56,15 +56,17 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
56
56
  let(:param_string) { 'def foo param1, param2; end' }
57
57
  let(:method_defs) { [] }
58
58
  let(:method_string) { "#{class_name}#foo" }
59
- let(:code) {"
59
+ let(:code) do
60
+ <<-eof
60
61
  class #{class_name}
61
- #{make_defs *method_defs}
62
+ #{make_defs(*method_defs)}
62
63
  # #{docstring}
63
64
  mock_decorator #{param_string}
64
65
  end
65
- "}
66
+ eof
67
+ end
66
68
 
67
- before {
69
+ before do
68
70
  Registry.clear
69
71
  YARD::Handlers::Base.clear_subclasses
70
72
 
@@ -74,7 +76,7 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
74
76
  create_test_handler :third
75
77
 
76
78
  StubbedSourceParser.parse_string code
77
- }
79
+ end
78
80
 
79
81
  it "returns an array of hashes containing the method proxy, node, and name" do
80
82
  expect(subject[:return]).to be_an Array
@@ -84,16 +86,16 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
84
86
  end
85
87
 
86
88
  describe "method is a MethodObject if the method has been defined" do
87
- let(:code) {"class DecoratorTest; mock_decorator def foo; end; end"}
89
+ let(:code) { "class DecoratorTest; mock_decorator def foo; end; end" }
88
90
 
89
91
  specify do
90
- expect(subject[:return].first[:method]) \
91
- .to be_a YARD::CodeObjects::MethodObject
92
+ expect(subject[:return].first[:method]).
93
+ to be_a YARD::CodeObjects::MethodObject
92
94
  end
93
95
  end
94
96
 
95
97
  describe "method is a Proxy if the method has not been defined" do
96
- let(:code) {"class DecoratorTest; mock_decorator :foo; end"}
98
+ let(:code) { "class DecoratorTest; mock_decorator :foo; end" }
97
99
 
98
100
  specify do
99
101
  expect(subject[:return].first[:method]).to be_a YARD::CodeObjects::Proxy
@@ -120,7 +122,7 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
120
122
  end
121
123
 
122
124
  describe "nodes argument" do
123
- subject { data[:mock][:return].map { |h| h[:method].to_s } }
125
+ subject { data[:mock][:return].map {|h| h[:method].to_s } }
124
126
 
125
127
  describe "assumes all params refer to methods by default" do
126
128
  let(:method_defs) { [:foo, :bar] }
@@ -134,11 +136,11 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
134
136
 
135
137
  describe "can specify which params to capture as methods" do
136
138
  let(:method_defs) { [:foo, :bar, :baz, :bat] }
137
- let(:parameters) {
139
+ let(:parameters) do
138
140
  [:option_1, :baz, :bat, :option_2, :foo, :bar].map do |s|
139
141
  make_ast s.inspect
140
142
  end
141
- }
143
+ end
142
144
 
143
145
  describe "as a single param" do
144
146
  let(:nodes) { parameters[4] }
@@ -200,7 +202,6 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
200
202
  end
201
203
 
202
204
  describe "creates method proxies" do
203
-
204
205
  shared_examples "decorator helper scope" do
205
206
  let(:param_string) { decorator_params.map(&:inspect).join(',') }
206
207
 
@@ -234,10 +235,10 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
234
235
 
235
236
  describe "for methods" do
236
237
  let(:param_string) { decorator_params.join(',') }
237
- let(:decorator_params) {[
238
- "def #{'self.' if mock_handler_opts[:scope] == :class}foo f1, f2; end",
239
- "def #{'self.' if mock_handler_opts[:scope] == :class}bar b1, b2; end"
240
- ]}
238
+ let(:decorator_params) do
239
+ ["def #{'self.' if mock_handler_opts[:scope] == :class}foo f1, f2; end",
240
+ "def #{'self.' if mock_handler_opts[:scope] == :class}bar b1, b2; end"]
241
+ end
241
242
 
242
243
  specify do
243
244
  expect(subject.count).to eq decorator_params.count
@@ -253,7 +254,7 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
253
254
  end
254
255
  end # decorator helper scope shared examples
255
256
 
256
- subject { data[:mock][:return].map { |h| h[:method] } }
257
+ subject { data[:mock][:return].map {|h| h[:method] } }
257
258
 
258
259
  let(:docstring) { 'the foo method' }
259
260
  let(:method_defs) { [:foo, :bar] }
@@ -281,12 +282,14 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
281
282
 
282
283
  describe "does not attach" do
283
284
  describe "to undefined methods" do
284
- let(:code) {"
285
+ let(:code) do
286
+ <<-eof
285
287
  class #{class_name}
286
288
  # #{docstring}
287
289
  mock_decorator :foo
288
290
  end
289
- "}
291
+ eof
292
+ end
290
293
 
291
294
  specify do
292
295
  expect(subject).not_to respond_to :docstring
@@ -294,7 +297,8 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
294
297
  end
295
298
 
296
299
  describe "to methods with existing docstring" do
297
- let(:code) {"
300
+ let(:code) do
301
+ <<-eof
298
302
  class #{class_name}
299
303
 
300
304
  # original docstring
@@ -303,7 +307,8 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
303
307
  # #{docstring}
304
308
  mock_decorator :foo
305
309
  end
306
- "}
310
+ eof
311
+ end
307
312
 
308
313
  specify do
309
314
  expect(subject.docstring).to eq 'original docstring'
@@ -316,13 +321,15 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
316
321
  subject { Registry.at method_string }
317
322
 
318
323
  let(:param_string) { 'def foo param1, param2; end' }
319
- let(:code) {"
324
+ let(:code) do
325
+ <<-eof
320
326
  class #{class_name}
321
- #{make_defs *method_defs}
327
+ #{make_defs(*method_defs)}
322
328
  # #{docstring}
323
329
  first_decorator second_decorator third_decorator #{param_string}
324
330
  end
325
- "}
331
+ eof
332
+ end
326
333
 
327
334
  specify "register nested method defs" do
328
335
  expect(subject).to be_a YARD::CodeObjects::MethodObject
@@ -352,16 +359,16 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
352
359
  end
353
360
 
354
361
  specify "don't transfer docstring to other decorators" do
355
- expect(Registry.at("#{class_name}#second_decorator")) \
356
- .not_to respond_to :docstring
362
+ expect(Registry.at("#{class_name}#second_decorator")).
363
+ not_to respond_to :docstring
357
364
 
358
- expect(Registry.at("#{class_name}#third_decorator")) \
359
- .not_to respond_to :docstring
365
+ expect(Registry.at("#{class_name}#third_decorator")).
366
+ not_to respond_to :docstring
360
367
  end
361
368
 
362
- describe "transfer source to decorated method defs" do
369
+ describe "transfer source to decorated method defs" do
363
370
  specify do
364
- expect(subject.source).to eq code.lines.to_a[-3].strip
371
+ expect(subject.source).to eq code.lines.to_a[-2].strip
365
372
  end
366
373
 
367
374
  describe "unless opt-out param is set" do
@@ -381,25 +388,6 @@ describe "YARD::Handlers::Ruby::DecoratorHandlerMethods" do
381
388
  expect(subject.source).to eq make_defs(*method_defs)
382
389
  end
383
390
  end
384
-
385
- describe "are tagged" do
386
- let(:method_defs) { [:foo, :bar] }
387
- let(:param_string) { method_defs.map(&:inspect).join(',') }
388
-
389
- specify do
390
- expect(subject.tags.count).to eq 3
391
-
392
- subject.tags.each do |tag|
393
- expect(tag.tag_name).to eq 'decorator'
394
- end
395
-
396
- expect(subject.tags.map(&:text)).to eq [
397
- 'third_decorator',
398
- 'second_decorator',
399
- 'first_decorator'
400
- ]
401
- end
402
- end
403
391
  end
404
392
  end # process_decorator
405
393
  end unless LEGACY_PARSER