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
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Backward compatability for gem specification lookup
4
+ # @see Gem::SourceIndex
5
+ module YARD
6
+ module GemIndex
7
+ module_function
8
+
9
+ def find_all_by_name(*args)
10
+ if defined?(Gem::Specification) && Gem::Specification.respond_to?(:find_all_by_name)
11
+ Gem::Specification.find_all_by_name(*args)
12
+ else
13
+ Gem.source_index.find_name(*args)
14
+ end
15
+ end
16
+ end
17
+ end
data/lib/yard/globals.rb CHANGED
@@ -1,11 +1,15 @@
1
+ # frozen_string_literal: true
1
2
  # @group Global Convenience Methods
2
3
 
3
4
  # Shortcut for creating a YARD::CodeObjects::Proxy via a path
4
5
  #
5
6
  # @see YARD::CodeObjects::Proxy
6
7
  # @see YARD::Registry.resolve
7
- def P(namespace, name = nil, type = nil)
8
- namespace, name = nil, namespace if name.nil?
8
+ def P(namespace, name = nil, type = nil) # rubocop:disable Style/MethodName
9
+ if name.nil?
10
+ name = namespace
11
+ namespace = nil
12
+ end
9
13
  YARD::Registry.resolve(namespace, name, false, true, type)
10
14
  end
11
15
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module Handlers
3
4
  # Raise this error when a handler should exit before completing.
@@ -189,7 +190,7 @@ module YARD
189
190
  # statement.
190
191
  #
191
192
  def handles(*matches)
192
- (@handlers ||= []).push(*matches)
193
+ (@handlers ||= []).concat(matches)
193
194
  end
194
195
 
195
196
  # This class is implemented by {Ruby::Base} and {Ruby::Legacy::Base}.
@@ -201,7 +202,7 @@ module YARD
201
202
  # @param statement a statement object or node (depends on language type)
202
203
  # @return [Boolean] whether or not this handler object should process
203
204
  # the given statement
204
- def handles?(statement)
205
+ def handles?(statement) # rubocop:disable Lint/UnusedMethodArgument
205
206
  raise NotImplementedError, "override #handles? in a subclass"
206
207
  end
207
208
 
@@ -222,7 +223,7 @@ module YARD
222
223
  # @return [Boolean] whether the handler should only be processed inside
223
224
  # a namespace.
224
225
  def namespace_only?
225
- (@namespace_only ||= false) ? true : false
226
+ @namespace_only ||= false
226
227
  end
227
228
 
228
229
  # Declares that a handler should only be called when inside a filename
@@ -300,7 +301,7 @@ module YARD
300
301
  # Parses the semantic "block" contained in the statement node.
301
302
  #
302
303
  # @abstract Subclasses should call {Processor#process parser.process}
303
- def parse_block(*args)
304
+ def parse_block(*)
304
305
  raise NotImplementedError, "#{self} did not implement a #parse_block method for handling"
305
306
  end
306
307
 
@@ -336,13 +337,13 @@ module YARD
336
337
  undef globals, extra_state
337
338
 
338
339
  def owner; parser.owner end
339
- def owner=(v) parser.owner=(v) end
340
+ def owner=(v) parser.owner = v end
340
341
  def namespace; parser.namespace end
341
- def namespace=(v); parser.namespace=(v) end
342
+ def namespace=(v); parser.namespace = v end
342
343
  def visibility; parser.visibility end
343
- def visibility=(v); parser.visibility=(v) end
344
+ def visibility=(v); parser.visibility = v end
344
345
  def scope; parser.scope end
345
- def scope=(v); parser.scope=(v) end
346
+ def scope=(v); parser.scope = v end
346
347
  def globals; parser.globals end
347
348
  def extra_state; parser.extra_state end
348
349
 
@@ -358,7 +359,6 @@ module YARD
358
359
  # Executes a given block with specific state values for {#owner},
359
360
  # {#namespace} and {#scope}.
360
361
  #
361
- # @param [Proc] block the block to execute with specific state
362
362
  # @option opts [CodeObjects::NamespaceObject] :namespace (value of #namespace)
363
363
  # the namespace object that {#namespace} will be equal to for the
364
364
  # duration of the block.
@@ -367,7 +367,7 @@ module YARD
367
367
  # @option opts [CodeObjects::Base] :owner (value of #owner)
368
368
  # the owner object (method) for the duration of the block
369
369
  # @yield a block to execute with the given state values.
370
- def push_state(opts = {}, &block)
370
+ def push_state(opts = {})
371
371
  opts = {
372
372
  :namespace => namespace,
373
373
  :scope => :instance,
@@ -375,7 +375,10 @@ module YARD
375
375
  :visibility => nil
376
376
  }.update(opts)
377
377
 
378
- ns, vis, sc, oo = namespace, visibility, scope, owner
378
+ ns = namespace
379
+ vis = visibility
380
+ sc = scope
381
+ oo = owner
379
382
  self.namespace = opts[:namespace]
380
383
  self.visibility = opts[:visibility] || :public
381
384
  self.scope = opts[:scope]
@@ -424,11 +427,10 @@ module YARD
424
427
  # @return [void]
425
428
  # @since 0.8.0
426
429
  def register_ensure_loaded(object)
427
- begin
428
- ensure_loaded!(object.namespace)
429
- object.namespace.children << object
430
- rescue NamespaceMissingError
431
- end
430
+ ensure_loaded!(object.namespace)
431
+ object.namespace.children << object
432
+ rescue NamespaceMissingError
433
+ nil # noop
432
434
  end
433
435
 
434
436
  # Registers the file/line of the declaration with the object
@@ -523,7 +525,7 @@ module YARD
523
525
  return unless object.module_function?
524
526
  modobj = MethodObject.new(object.namespace, object.name)
525
527
  object.copy_to(modobj)
526
- modobj.visibility = :private
528
+ modobj.visibility = :private # rubocop:disable Lint/UselessSetterCall
527
529
  end
528
530
 
529
531
  # Registers the object as dynamic if the object is defined inside
@@ -562,12 +564,9 @@ module YARD
562
564
 
563
565
  retries = 0
564
566
  while object.is_a?(Proxy)
565
- if retries <= max_retries
566
- log.debug "Missing object #{object} in file `#{parser.file}', moving it to the back of the line."
567
- parser.parse_remaining_files
568
- else
569
- raise NamespaceMissingError, object
570
- end
567
+ raise NamespaceMissingError, object if retries > max_retries
568
+ log.debug "Missing object #{object} in file `#{parser.file}', moving it to the back of the line."
569
+ parser.parse_remaining_files
571
570
  retries += 1
572
571
  end
573
572
  object
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  class YARD::Handlers::C::AliasHandler < YARD::Handlers::C::Base
2
- MATCH = %r{rb_define_alias
3
+ MATCH = /rb_define_alias
3
4
  \s*\(\s*([\w\.]+),
4
5
  \s*"([^"]+)",
5
- \s*"([^"]+)"\s*\)}xm
6
+ \s*"([^"]+)"\s*\)/xm
6
7
  handles MATCH
7
8
  statement_class BodyStatement
8
9
 
@@ -1,5 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  class YARD::Handlers::C::AttributeHandler < YARD::Handlers::C::Base
2
- MATCH = %r{rb_define_attr\s*\(\s*([\w\.]+),\s*"([^"]+)",\s*(0|1)\s*,\s*(0|1)\s*\)}
3
+ MATCH = /rb_define_attr\s*\(\s*([\w\.]+),\s*"([^"]+)",\s*(0|1)\s*,\s*(0|1)\s*\)/
3
4
  handles MATCH
4
5
 
5
6
  process do
@@ -9,5 +10,4 @@ class YARD::Handlers::C::AttributeHandler < YARD::Handlers::C::Base
9
10
  handle_attribute(var_name, name, read, write)
10
11
  end
11
12
  end
12
-
13
13
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module Handlers
3
4
  module C
@@ -10,11 +11,8 @@ module YARD
10
11
  processor.globals.cruby_processed_files ||= {}
11
12
  processor.globals.cruby_processed_files[processor.file] = true
12
13
 
13
- if statement.respond_to? :declaration
14
- src = statement.declaration
15
- else
16
- src = statement.source
17
- end
14
+ src = statement.respond_to?(:declaration) ?
15
+ statement.declaration : statement.source
18
16
 
19
17
  handlers.any? do |a_handler|
20
18
  statement_class >= statement.class &&
@@ -28,7 +26,11 @@ module YARD
28
26
  end
29
27
 
30
28
  def self.statement_class(type = nil)
31
- type ? @statement_class = type : (@statement_class || Statement)
29
+ if type
30
+ @statement_class = type
31
+ else
32
+ (defined?(@statement_class) && @statement_class) || Statement
33
+ end
32
34
  end
33
35
 
34
36
  # @group Registering objects
@@ -66,18 +68,16 @@ module YARD
66
68
  end
67
69
 
68
70
  def ensure_variable_defined!(var, max_retries = 1)
69
- retries, object = 0, nil
71
+ retries = 0
72
+ object = nil
70
73
 
71
74
  loop do
72
75
  object = namespace_for_variable(var)
73
76
  break unless object.is_a?(Proxy)
74
77
 
75
- if retries <= max_retries
76
- log.debug "Missing namespace variable #{var} in file `#{parser.file}', moving it to the back of the line."
77
- parser.parse_remaining_files
78
- else
79
- raise NamespaceMissingError, object
80
- end
78
+ raise NamespaceMissingError, object if retries > max_retries
79
+ log.debug "Missing namespace variable #{var} in file `#{parser.file}', moving it to the back of the line."
80
+ parser.parse_remaining_files
81
81
  retries += 1
82
82
  end
83
83
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class YARD::Handlers::C::ClassHandler < YARD::Handlers::C::Base
2
3
  MATCH1 = /([\w\.]+)\s* = \s*(?:rb_define_class|boot_defclass)\s*
3
4
  \(
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  class YARD::Handlers::C::ConstantHandler < YARD::Handlers::C::Base
2
- MATCH = %r{\brb_define_((?:readonly_)?variable|(?:global_)?const)
3
- \s*\((?:\s*(\w+),)?\s*"(\w+)",\s*(.*?)\s*\)\s*;}xm
3
+ MATCH = /\brb_define_((?:readonly_)?variable|(?:global_)?const)
4
+ \s*\((?:\s*(\w+),)?\s*"(\w+)",\s*(.*?)\s*\)\s*;/xm
4
5
  handles MATCH
5
6
  statement_class BodyStatement
6
7
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module Handlers
3
4
  module C
@@ -9,8 +10,8 @@ module YARD
9
10
  parent = nil if parent == "0"
10
11
  namespace = in_module ? ensure_variable_defined!(in_module) : Registry.root
11
12
  if namespace.nil?
12
- raise Parser::UndocumentableError, "class #{class_name}. " +
13
- "Cannot find definition for parent namespace."
13
+ raise Parser::UndocumentableError,
14
+ "class #{class_name}. Cannot find definition for parent namespace."
14
15
  end
15
16
 
16
17
  register ClassObject.new(namespace, class_name) do |obj|
@@ -31,8 +32,8 @@ module YARD
31
32
  def handle_module(var_name, module_name, in_module = nil)
32
33
  namespace = in_module ? ensure_variable_defined!(in_module) : Registry.root
33
34
  if namespace.nil?
34
- raise Parser::UndocumentableError, "module #{module_name}. " +
35
- "Cannot find definition for parent namespace."
35
+ raise Parser::UndocumentableError,
36
+ "module #{module_name}. Cannot find definition for parent namespace."
36
37
  end
37
38
 
38
39
  register ModuleObject.new(namespace, module_name) do |obj|
@@ -41,7 +42,7 @@ module YARD
41
42
  end
42
43
  end
43
44
 
44
- def handle_method(scope, var_name, name, func_name, source_file = nil)
45
+ def handle_method(scope, var_name, name, func_name, _source_file = nil)
45
46
  visibility = :public
46
47
  case scope
47
48
  when "singleton_method"; scope = :class
@@ -84,7 +85,8 @@ module YARD
84
85
  def handle_alias(var_name, new_name, old_name)
85
86
  namespace = namespace_for_variable(var_name)
86
87
  return if namespace.nil?
87
- new_meth, old_meth = new_name.to_sym, old_name.to_sym
88
+ new_meth = new_name.to_sym
89
+ old_meth = old_name.to_sym
88
90
  old_obj = namespace.child(:name => old_meth, :scope => :instance)
89
91
  new_obj = register MethodObject.new(namespace, new_meth, :instance) do |o|
90
92
  register_visibility(o, visibility)
@@ -105,11 +107,8 @@ module YARD
105
107
 
106
108
  def handle_constants(type, var_name, const_name, value)
107
109
  return unless type =~ /^const$|^global_const$/
108
- if type == 'global_const'
109
- namespace = :root
110
- else
111
- namespace = namespace_for_variable(var_name)
112
- end
110
+ namespace = type == 'global_const' ?
111
+ :root : namespace_for_variable(var_name)
113
112
  register ConstantObject.new(namespace, const_name) do |obj|
114
113
  obj.source_type = :c
115
114
  obj.value = value
@@ -129,7 +128,6 @@ module YARD
129
128
  just_const_name = name.gsub(/\A.+::/, '')
130
129
  if object.path == name || object.name.to_s == just_const_name
131
130
  comment = override_comment.source
132
- stmt = override_comment
133
131
  break
134
132
  end
135
133
  end
@@ -153,13 +151,16 @@ module YARD
153
151
  end
154
152
 
155
153
  def find_method_body(object, symbol)
156
- file, in_file = statement.file, false
154
+ file = statement.file
155
+ in_file = false
157
156
  if statement.comments && statement.comments.source =~ /\A\s*in (\S+)\Z/
158
- file, in_file = $1, true
157
+ file = $1
158
+ in_file = true
159
159
  process_file(file, object)
160
160
  end
161
161
 
162
- if src_stmt = symbols[symbol]
162
+ src_stmt = symbols[symbol]
163
+ if src_stmt
163
164
  register_file_info(object, src_stmt.file, src_stmt.line, true)
164
165
  register_source(object, src_stmt)
165
166
  record_parameters(object, symbol, src_stmt)
@@ -171,19 +172,17 @@ module YARD
171
172
 
172
173
  # found source (possibly) but no docstring
173
174
  # so look in overrides
174
- override_comments.each do |name, override_comment|
175
+ return if override_comments.any? do |name, override_comment|
175
176
  next unless override_comment.file == file
176
177
  name = name.gsub(/::([^:\.#]+?)\Z/, '.\1')
177
178
 
178
- path = if name =~ /\.|#/ # explicit namespace in override comment
179
- object.path
180
- else
181
- object.name.to_s
182
- end
183
-
179
+ # explicit namespace in override comment
180
+ path = (name =~ /\.|#/ ? object.path : object.name.to_s)
184
181
  if path == name || path == name.sub(/new$/, 'initialize') || path == name.sub('.', '#')
185
182
  register_docstring(object, override_comment.source, override_comment)
186
- return
183
+ true
184
+ else
185
+ false
187
186
  end
188
187
  end
189
188
 
@@ -196,13 +195,13 @@ module YARD
196
195
  def record_parameters(object, symbol, src)
197
196
  # use regex to extract comma-delimited list of parameters from cfunc definition
198
197
  if src.source =~ /VALUE\s+#{symbol}\(([^)]*)\)\s*\{/m
199
- params = $~[1].split(/\s*,\s*/)
198
+ params = $~[1].split(/\s*,\s*/) # rubocop:disable Style/SpecialGlobalVars
200
199
  # cfunc for a "varargs" method has params "int argc, VALUE *argv"
201
200
  if params[0] =~ /int\s+argc/ && params[1] =~ /VALUE\s*\*\s*argv/
202
201
  object.parameters = [['*args', nil]]
203
202
  else
204
203
  # the first cfunc argument is the 'self' argument, we don't need that
205
- object.parameters = params.drop(1).map { |s| [s[/VALUE\s+(\S+)/, 1], nil] }
204
+ object.parameters = params.drop(1).map {|s| [s[/VALUE\s+(\S+)/, 1], nil] }
206
205
  end
207
206
  end
208
207
  end
@@ -1,12 +1,14 @@
1
+ # frozen_string_literal: true
1
2
  # Handles the Init_Libname() method
2
3
  class YARD::Handlers::C::InitHandler < YARD::Handlers::C::Base
3
- MATCH = %r{\A\s*(?:\S+\s+)*void\s+(?:[Ii]nit_)?(\w+)\s*}
4
+ MATCH = /\A\s*(?:\S+\s+)*void\s+(?:[Ii]nit_)?(\w+)\s*/
4
5
  handles MATCH
5
6
  statement_class ToplevelStatement
6
7
 
7
8
  process do
8
9
  parse_block
9
- if decl = statement.declaration[MATCH, 1]
10
+ decl = statement.declaration[MATCH, 1]
11
+ if decl
10
12
  ns = namespace_for_variable(decl)
11
13
  if ns.is_a?(YARD::CodeObjects::NamespaceObject) && ns.docstring.blank?
12
14
  if statement.comments
@@ -1,5 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  class YARD::Handlers::C::MethodHandler < YARD::Handlers::C::Base
2
- MATCH1 = %r{rb_define_
3
+ MATCH1 = /rb_define_
3
4
  (
4
5
  singleton_method |
5
6
  method |
@@ -9,17 +10,17 @@ class YARD::Handlers::C::MethodHandler < YARD::Handlers::C::Base
9
10
  \s*\(\s*([\w\.]+)\s*,
10
11
  \s*"([^"]+)"\s*,
11
12
  \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\(|\(\w+\))?(\w+)\)?\s*,
12
- \s*(-?\w+)\s*\)}xm
13
- MATCH2 = %r{rb_define_global_function\s*\(
13
+ \s*(-?\w+)\s*\)/xm
14
+ MATCH2 = /rb_define_global_function\s*\(
14
15
  \s*"([^"]+)",
15
16
  \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\(|\(\w+\))?(\w+)\)?,
16
- \s*(-?\w+)\s*\)}xm
17
+ \s*(-?\w+)\s*\)/xm
17
18
  handles MATCH1
18
19
  handles MATCH2
19
20
  statement_class BodyStatement
20
21
 
21
22
  process do
22
- statement.source.scan(MATCH1) do |type, var_name, name, func_name, param_count|
23
+ statement.source.scan(MATCH1) do |type, var_name, name, func_name, _param_count|
23
24
  break if var_name == "ruby_top_self"
24
25
  break if var_name == "nstr"
25
26
  break if var_name == "envtbl"
@@ -28,7 +29,7 @@ class YARD::Handlers::C::MethodHandler < YARD::Handlers::C::Base
28
29
  handle_method(type, var_name, name, func_name)
29
30
  end
30
31
 
31
- statement.source.scan(MATCH2) do |name, func_name, param_count|
32
+ statement.source.scan(MATCH2) do |name, func_name, _param_count|
32
33
  handle_method("method", "rb_mKernel", name, func_name)
33
34
  end
34
35
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class YARD::Handlers::C::MixinHandler < YARD::Handlers::C::Base
2
3
  MATCH = /rb_include_module\s*\(\s*(\w+?),\s*(\w+?)\s*\)/
3
4
  handles MATCH
@@ -8,7 +9,8 @@ class YARD::Handlers::C::MixinHandler < YARD::Handlers::C::Base
8
9
  namespace = namespace_for_variable(klass_var)
9
10
  ensure_loaded!(namespace)
10
11
 
11
- if var = namespace_for_variable(mixin_var)
12
+ var = namespace_for_variable(mixin_var)
13
+ if var
12
14
  namespace.mixins(:instance) << var
13
15
  else
14
16
  raise YARD::Parser::UndocumentableError,