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,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class YARD::Handlers::C::ModuleHandler < YARD::Handlers::C::Base
2
3
  MATCH1 = /([\w\.]+)\s* = \s*rb_define_module\s*\(\s*"([\w:]+)"\s*\)/mx
3
4
  MATCH2 = /([\w\.]+)\s* = \s*rb_define_module_under\s*\(\s*(\w+),\s*"(\w+)"\s*\)/mx
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  # Parses comments
2
3
  class YARD::Handlers::C::OverrideCommentHandler < YARD::Handlers::C::Base
3
- handles %r{.}
4
+ handles(/./)
4
5
  statement_class Comment
5
6
 
6
7
  process do
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class YARD::Handlers::C::PathHandler < YARD::Handlers::C::Base
2
3
  MATCH = /([\w\.]+)\s* = \s*rb_path2class\s*\(\s*"([\w:]+)"\)/mx
3
4
  handles MATCH
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class YARD::Handlers::C::StructHandler < YARD::Handlers::C::Base
2
3
  MATCH = /([\w\.]+)\s*=\s*(?:rb_struct_define_without_accessor)\s*
3
4
  \(\s*"([\w:]+)"\s*,\s*(\w+)\s*/mx
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  # Keeps track of function bodies for symbol lookup during Ruby method declarations
2
3
  class YARD::Handlers::C::SymbolHandler < YARD::Handlers::C::Base
3
- MATCH = %r{\A\s*(?:(?:\w+)\s+)?(?:intern\s+)?VALUE\s+(\w+)\s*\(}
4
+ MATCH = /\A\s*(?:(?:\w+)\s+)?(?:intern\s+)?VALUE\s+(\w+)\s*\(/
4
5
  handles MATCH
5
6
  statement_class ToplevelStatement
6
7
  process { symbols[statement.source[MATCH, 1]] = statement }
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'ostruct'
2
3
 
3
4
  module YARD
@@ -17,7 +18,6 @@ module YARD
17
18
  #
18
19
  # @see Handlers::Base
19
20
  class Processor
20
-
21
21
  class << self
22
22
  # Registers a new namespace for handlers of the given type.
23
23
  # @since 0.6.0
@@ -108,24 +108,23 @@ module YARD
108
108
  # @param [Array] statements a list of statements
109
109
  # @return [void]
110
110
  def process(statements)
111
- statements.each_with_index do |stmt, index|
111
+ statements.each_with_index do |stmt, _index|
112
112
  find_handlers(stmt).each do |handler|
113
113
  begin
114
114
  handler.new(self, stmt).process
115
- rescue HandlerAborted => abort
116
- log.debug "#{handler.to_s} cancelled from #{caller.last}"
115
+ rescue HandlerAborted
116
+ log.debug "#{handler} cancelled from #{caller.last}"
117
117
  log.debug "\tin file '#{file}':#{stmt.line}:\n\n" + stmt.show + "\n"
118
118
  rescue NamespaceMissingError => missingerr
119
- log.warn "The #{missingerr.object.type} #{missingerr.object.path} has not yet been recognized."
120
- log.warn "If this class/method is part of your source tree, this will affect your documentation results."
121
- log.warn "You can correct this issue by loading the source file for this object before `#{file}'"
122
- log.warn
119
+ log.warn "The #{missingerr.object.type} #{missingerr.object.path} has not yet been recognized.\n" \
120
+ "If this class/method is part of your source tree, this will affect your documentation results.\n" \
121
+ "You can correct this issue by loading the source file for this object before `#{file}'\n"
123
122
  rescue Parser::UndocumentableError => undocerr
124
- log.warn "in #{handler.to_s}: Undocumentable #{undocerr.message}"
125
- log.warn "\tin file '#{file}':#{stmt.line}:\n\n" + stmt.show + "\n"
123
+ log.warn "in #{handler}: Undocumentable #{undocerr.message}\n" \
124
+ "\tin file '#{file}':#{stmt.line}:\n\n" + stmt.show + "\n"
126
125
  rescue => e
127
- log.error "Unhandled exception in #{handler.to_s}:"
128
- log.error " in `#{file}`:#{stmt.line}:\n\n#{stmt.show}\n"
126
+ log.error "Unhandled exception in #{handler}:\n" \
127
+ " in `#{file}`:#{stmt.line}:\n\n#{stmt.show}\n"
129
128
  log.backtrace(e)
130
129
  end
131
130
  end
@@ -152,8 +151,8 @@ module YARD
152
151
  def find_handlers(statement)
153
152
  Base.subclasses.find_all do |handler|
154
153
  handler_base_class > handler &&
155
- (handler.namespace_only? ? owner.is_a?(CodeObjects::NamespaceObject) : true) &&
156
- handles?(handler, statement)
154
+ (handler.namespace_only? ? owner.is_a?(CodeObjects::NamespaceObject) : true) &&
155
+ handles?(handler, statement)
157
156
  end
158
157
  end
159
158
 
@@ -198,4 +197,4 @@ module YARD
198
197
  end
199
198
  end
200
199
  end
201
- end
200
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Handles alias and alias_method calls
2
3
  class YARD::Handlers::Ruby::AliasHandler < YARD::Handlers::Ruby::Base
3
4
  handles :alias, method_call(:alias_method)
@@ -19,7 +20,8 @@ class YARD::Handlers::Ruby::AliasHandler < YARD::Handlers::Ruby::Base
19
20
  end
20
21
  raise YARD::Parser::UndocumentableError, "alias/alias_method" if names.size != 2
21
22
 
22
- new_meth, old_meth = names[0].to_sym, names[1].to_sym
23
+ new_meth = names[0].to_sym
24
+ old_meth = names[1].to_sym
23
25
  old_obj = namespace.child(:name => old_meth, :scope => scope)
24
26
  new_obj = register MethodObject.new(namespace, new_meth, scope) do |o|
25
27
  o.add_file(parser.file, statement.line)
@@ -39,4 +41,4 @@ class YARD::Handlers::Ruby::AliasHandler < YARD::Handlers::Ruby::Base
39
41
  new_obj.signature = "def #{new_meth}" # this is all we know.
40
42
  end
41
43
  end
42
- end
44
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Handles +attr_*+ statements in modules/classes
2
3
  class YARD::Handlers::Ruby::AttributeHandler < YARD::Handlers::Ruby::Base
3
4
  handles method_call(:attr)
@@ -8,7 +9,8 @@ class YARD::Handlers::Ruby::AttributeHandler < YARD::Handlers::Ruby::Base
8
9
 
9
10
  process do
10
11
  return if statement.type == :var_ref || statement.type == :vcall
11
- read, write = true, false
12
+ read = true
13
+ write = false
12
14
  params = statement.parameters(false).dup
13
15
 
14
16
  # Change read/write based on attr_reader/writer/accessor
@@ -23,7 +25,8 @@ class YARD::Handlers::Ruby::AttributeHandler < YARD::Handlers::Ruby::Base
23
25
  when :attr_reader
24
26
  # change nothing
25
27
  when :attr_writer
26
- read, write = false, true
28
+ read = false
29
+ write = true
27
30
  end
28
31
 
29
32
  # Add all attributes
@@ -32,7 +35,7 @@ class YARD::Handlers::Ruby::AttributeHandler < YARD::Handlers::Ruby::Base
32
35
 
33
36
  # Show their methods as well
34
37
  {:read => name, :write => "#{name}="}.each do |type, meth|
35
- if (type == :read ? read : write)
38
+ if type == :read ? read : write
36
39
  o = MethodObject.new(namespace, meth, scope)
37
40
  if type == :write
38
41
  o.parameters = [['value', nil]]
@@ -51,9 +54,11 @@ class YARD::Handlers::Ruby::AttributeHandler < YARD::Handlers::Ruby::Base
51
54
 
52
55
  # Regsiter the object explicitly
53
56
  namespace.attributes[scope][name][type] = o
54
- elsif obj = namespace.children.find {|o| o.name == meth.to_sym && o.scope == scope }
57
+ else
58
+ obj = namespace.children.find {|other| other.name == meth.to_sym && other.scope == scope }
59
+
55
60
  # register an existing method as attribute
56
- namespace.attributes[scope][name][type] = obj
61
+ namespace.attributes[scope][name][type] = obj if obj
57
62
  end
58
63
  end
59
64
  end
@@ -79,4 +84,4 @@ class YARD::Handlers::Ruby::AttributeHandler < YARD::Handlers::Ruby::Base
79
84
  end
80
85
  end
81
86
  end
82
- end
87
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module Handlers
3
4
  module Ruby
@@ -23,7 +24,9 @@ module YARD
23
24
  # Tests if the node matches the handler
24
25
  # @param [Parser::Ruby::AstNode] node a Ruby node
25
26
  # @return [Boolean] whether the +node+ matches the handler
26
- def matches?(node) raise NotImplementedError end
27
+ def matches?(node) # rubocop:disable Lint/UnusedMethodArgument
28
+ raise NotImplementedError
29
+ end
27
30
 
28
31
  protected
29
32
 
@@ -154,11 +157,9 @@ module YARD
154
157
  statement.method_name(true).to_s
155
158
  elsif statement.type == :var_ref || statement.type == :vcall
156
159
  statement[0].jump(:ident, :kw).source
157
- else
158
- nil
159
160
  end
160
161
  end
161
162
  end
162
163
  end
163
164
  end
164
- end
165
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Matches if/unless conditions inside classes and attempts to process only
2
3
  # one branch (by evaluating the condition if possible).
3
4
  #
@@ -14,7 +15,7 @@ class YARD::Handlers::Ruby::ClassConditionHandler < YARD::Handlers::Ruby::Base
14
15
 
15
16
  process do
16
17
  condition = parse_condition
17
- if condition == nil
18
+ if condition.nil?
18
19
  # Parse both blocks if we're unsure of the condition
19
20
  parse_then_block
20
21
  parse_else_block
@@ -69,7 +70,7 @@ class YARD::Handlers::Ruby::ClassConditionHandler < YARD::Handlers::Ruby::Base
69
70
 
70
71
  # Invert an unless condition
71
72
  if statement.type == :unless || statement.type == :unless_mod
72
- condition = !condition if condition != nil
73
+ condition = !condition unless condition.nil?
73
74
  end
74
75
  condition
75
76
  end
@@ -83,4 +84,4 @@ class YARD::Handlers::Ruby::ClassConditionHandler < YARD::Handlers::Ruby::Base
83
84
  parse_block(statement.else_block, :visibility => visibility)
84
85
  end
85
86
  end
86
- end
87
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Handles class declarations
2
3
  class YARD::Handlers::Ruby::ClassHandler < YARD::Handlers::Ruby::Base
3
4
  include YARD::Handlers::Ruby::StructHandlerMethods
@@ -43,7 +44,7 @@ class YARD::Handlers::Ruby::ClassHandler < YARD::Handlers::Ruby::Base
43
44
  end
44
45
  end
45
46
 
46
- if classname[0,1] =~ /[A-Z]/
47
+ if classname[0, 1] =~ /[A-Z]/
47
48
  register ClassObject.new(namespace, classname) if Proxy === proxy
48
49
  parse_block(statement[1], :namespace => proxy, :scope => :class)
49
50
  else
@@ -64,8 +65,8 @@ class YARD::Handlers::Ruby::ClassHandler < YARD::Handlers::Ruby::Base
64
65
  # @param [MethodCallNode] superclass the AST node for the Struct.new call
65
66
  # @return [Array<String>] the member names to generate methods for
66
67
  def extract_parameters(superclass)
67
- members = superclass.parameters.select {|x| x && x.type == :symbol_literal}
68
- members.map! {|x| x.source.strip[1..-1]}
68
+ members = superclass.parameters.select {|x| x && x.type == :symbol_literal }
69
+ members.map! {|x| x.source.strip[1..-1] }
69
70
  members
70
71
  end
71
72
 
@@ -105,11 +106,8 @@ class YARD::Handlers::Ruby::ClassHandler < YARD::Handlers::Ruby::Base
105
106
  return superclass.source
106
107
  when :fcall, :command
107
108
  methname = superclass.method_name.source
108
- if methname == "DelegateClass"
109
- return superclass.parameters.first.source
110
- elsif superclass.method_name.type == :const
111
- return methname
112
- end
109
+ return superclass.parameters.first.source if methname == "DelegateClass"
110
+ return methname if superclass.method_name.type == :const
113
111
  when :call, :command_call
114
112
  cname = superclass.namespace.source
115
113
  if cname =~ /^O?Struct$/ && superclass.method_name(true) == :new
@@ -118,4 +116,4 @@ class YARD::Handlers::Ruby::ClassHandler < YARD::Handlers::Ruby::Base
118
116
  end
119
117
  nil
120
118
  end
121
- end
119
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Handles a class variable (@@variable)
2
3
  class YARD::Handlers::Ruby::ClassVariableHandler < YARD::Handlers::Ruby::Base
3
4
  handles :assign
@@ -13,4 +14,4 @@ class YARD::Handlers::Ruby::ClassVariableHandler < YARD::Handlers::Ruby::Base
13
14
  end
14
15
  end
15
16
  end
16
- end
17
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Handles any lone comment statement in a Ruby file
2
3
  class YARD::Handlers::Ruby::CommentHandler < YARD::Handlers::Ruby::Base
3
4
  handles :comment, :void_stmt
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Handles any constant assignment
2
3
  class YARD::Handlers::Ruby::ConstantHandler < YARD::Handlers::Ruby::Base
3
4
  include YARD::Handlers::Ruby::StructHandlerMethods
@@ -6,22 +7,25 @@ class YARD::Handlers::Ruby::ConstantHandler < YARD::Handlers::Ruby::Base
6
7
 
7
8
  process do
8
9
  if statement[1].call? && statement[1][0][0] == s(:const, "Struct") &&
9
- statement[1][2] == s(:ident, "new")
10
+ statement[1][2] == s(:ident, "new")
10
11
  process_structclass(statement)
11
12
  elsif statement[0].type == :var_field && statement[0][0].type == :const
12
13
  process_constant(statement)
14
+ elsif statement[0].type == :const_path_field
15
+ process_constant(statement)
13
16
  end
14
17
  end
15
18
 
16
19
  private
17
20
 
18
21
  def process_constant(statement)
19
- name = statement[0][0][0]
22
+ name = statement[0].source
20
23
  value = statement[1].source
21
24
  obj = P(namespace, name)
22
- if obj.is_a?(NamespaceObject)
25
+ if obj.is_a?(NamespaceObject) && obj.namespace == namespace
23
26
  raise YARD::Parser::UndocumentableError, "constant for existing #{obj.type} #{obj}"
24
27
  else
28
+ ensure_loaded! obj.parent
25
29
  register ConstantObject.new(namespace, name) {|o| o.source = statement; o.value = value.strip }
26
30
  end
27
31
  end
@@ -43,8 +47,8 @@ class YARD::Handlers::Ruby::ConstantHandler < YARD::Handlers::Ruby::Base
43
47
  # @return [Array<String>] the member names to generate methods for
44
48
  def extract_parameters(superclass)
45
49
  return [] unless superclass.parameters
46
- members = superclass.parameters.select {|x| x && x.type == :symbol_literal}
47
- members.map! {|x| x.source.strip[1..-1]}
50
+ members = superclass.parameters.select {|x| x && x.type == :symbol_literal }
51
+ members.map! {|x| x.source.strip[1..-1] }
48
52
  members
49
53
  end
50
54
  end
@@ -1,6 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  # Helper methods to assist with processing decorators.
2
3
  module YARD::Handlers::Ruby::DecoratorHandlerMethods
3
-
4
4
  # @overload process_decorator(*nodes, opts = {}, &block)
5
5
  # Takes care of parsing method definitions passed to decorators
6
6
  # as parameters, as well as parsing chained decorators.
@@ -49,25 +49,25 @@ module YARD::Handlers::Ruby::DecoratorHandlerMethods
49
49
 
50
50
  # Parse decorator parameters (decorator chain).
51
51
  all_nodes.each do |param|
52
- parse_block param if param.call? or param.def?
52
+ parse_block param if param.call? || param.def?
53
53
  end
54
54
 
55
55
  selected_nodes =
56
56
  if nodes.empty?
57
57
  all_nodes
58
- elsif (nodes.count == 1 and nodes.first == nil)
58
+ elsif nodes.count == 1 && nodes.first.nil?
59
59
  []
60
60
  else
61
61
  nodes
62
62
  end
63
63
 
64
- decorated_methods = selected_nodes.map { |param|
64
+ decorated_methods = selected_nodes.map do |param|
65
65
  process_decorator_parameter param, opts, &block
66
- }.flatten
66
+ end.flatten
67
67
 
68
68
  # Store method nodes in decorator node.
69
69
  statement.define_singleton_method :decorators do
70
- decorated_methods.map { |h| h[:node] }
70
+ decorated_methods.map {|h| h[:node] }
71
71
  end
72
72
 
73
73
  decorated_methods
@@ -75,7 +75,7 @@ module YARD::Handlers::Ruby::DecoratorHandlerMethods
75
75
 
76
76
  private
77
77
 
78
- def process_decorator_parameter(node, opts={}, &block)
78
+ def process_decorator_parameter(node, opts = {}, &block)
79
79
  scope = opts.fetch :scope, :instance
80
80
  transfer_docstring = opts.fetch :transfer_docstring, true
81
81
  transfer_source = opts.fetch :transfer_source, true
@@ -105,32 +105,19 @@ module YARD::Handlers::Ruby::DecoratorHandlerMethods
105
105
  )
106
106
 
107
107
  # Transfer source to methods passed to the helper as parameters.
108
- method.source = statement.source if transfer_source and node.def?
109
-
110
- # Tag decorator on decorated method.
111
- if method.respond_to? :add_tag
112
- method.add_tag YARD::Tags::Tag.new(
113
- :decorator,
114
- statement.jump(:command).jump(:ident).source
115
- )
116
- end
108
+ method.source = statement.source if transfer_source && node.def?
117
109
 
118
110
  # Transfer decorator docstring to methods passed to the helper as parameters.
119
- if transfer_docstring \
120
- and node.def? \
121
- and statement.docstring \
122
- and method.docstring.empty?
123
- tags = method.tags if method.respond_to? :tags
124
- tags ||= []
125
-
126
- method.docstring = statement.docstring
127
-
128
- tags.each { |t| method.add_tag t }
111
+ if transfer_docstring && node.def? &&
112
+ statement.docstring && method.docstring.empty?
113
+ tags = method.tags if method.respond_to? :tags
114
+ tags ||= []
115
+ method.docstring = statement.docstring
116
+ tags.each {|t| method.add_tag t }
129
117
  end
130
118
 
131
- block.call method, node, name.to_sym if block_given?
119
+ yield method, node, name.to_sym if block_given?
132
120
 
133
121
  [{:method => method, :node => node, :name => name.to_sym}]
134
122
  end
135
-
136
123
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module Handlers
3
4
  module Ruby
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module Handlers
3
4
  module Ruby
@@ -22,13 +23,13 @@ module YARD
22
23
  attaching = true
23
24
  end
24
25
 
25
- if macro = find_attached_macro
26
+ macro = find_attached_macro
27
+ if macro
26
28
  txt = macro.expand([caller_method, *call_params], statement.source)
27
29
  @docstring += "\n" + txt
28
30
 
29
- if !attaching && txt.match(/^\s*@!/) # macro has a directive
30
- return register_docstring(nil)
31
- end
31
+ # macro may have a directive
32
+ return register_docstring(nil) if !attaching && txt.match(/^\s*@!/)
32
33
  elsif !statement.comments_hash_flag && !implicit_docstring?
33
34
  return register_docstring(nil)
34
35
  end
@@ -83,7 +84,7 @@ module YARD
83
84
  def macro_name_matches(macro)
84
85
  objs = [macro.method_object]
85
86
  if objs.first.type != :proxy && objs.first.respond_to?(:aliases)
86
- objs.push(*objs.first.aliases)
87
+ objs.concat(objs.first.aliases)
87
88
  end
88
89
 
89
90
  objs.any? {|obj| obj.name.to_s == caller_method.to_s }
@@ -91,4 +92,4 @@ module YARD
91
92
  end
92
93
  end
93
94
  end
94
- end
95
+ end