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
  require 'digest/sha1'
2
3
  require 'fileutils'
3
4
 
@@ -44,8 +45,7 @@ module YARD
44
45
  # @return [CodeObjects::ExtraFileObject] the file object being rendered.
45
46
  # The +object+ key is not used so that a file may be rendered in the context
46
47
  # of an object's namespace (for generating links).
47
- attr_reader :file
48
- def file=(v) @file = v end
48
+ attr_accessor :file
49
49
 
50
50
  # @return [String] the current locale
51
51
  attr_accessor :locale
@@ -220,7 +220,10 @@ module YARD
220
220
  @has_markup = false
221
221
 
222
222
  if defined?(::Encoding) && ::Encoding.respond_to?(:default_external=)
223
- ::Encoding.default_external, ::Encoding.default_internal = 'utf-8', 'utf-8'
223
+ utf8 = ::Encoding.find('utf-8')
224
+
225
+ ::Encoding.default_external = utf8 unless ::Encoding.default_external == utf8
226
+ ::Encoding.default_internal = utf8 unless ::Encoding.default_internal == utf8
224
227
  end
225
228
  end
226
229
 
@@ -236,7 +239,7 @@ module YARD
236
239
  # @return [void]
237
240
  def run(*args)
238
241
  log.show_progress = true
239
- if args.size == 0 || !args.first.nil?
242
+ if args.empty? || !args.first.nil?
240
243
  # fail early if arguments are not valid
241
244
  return unless parse_arguments(*args)
242
245
  end
@@ -283,8 +286,8 @@ module YARD
283
286
  super(*args)
284
287
 
285
288
  # Last minute modifications
286
- self.files = Parser::SourceParser::DEFAULT_PATH_GLOB if self.files.empty?
287
- self.files.delete_if {|x| x =~ /\A\s*\Z/ } # remove empty ones
289
+ self.files = Parser::SourceParser::DEFAULT_PATH_GLOB if files.empty?
290
+ files.delete_if {|x| x =~ /\A\s*\Z/ } # remove empty ones
288
291
  readme = Dir.glob('README{,*[^~]}').first
289
292
  readme ||= Dir.glob(files.first).first if options.onefile
290
293
  options.readme ||= CodeObjects::ExtraFileObject.new(readme) if readme
@@ -336,7 +339,7 @@ module YARD
336
339
  Registry.load_all if use_cache
337
340
  objects = run_verifier(all_objects).reject do |object|
338
341
  serialized = !options.serializer || options.serializer.exists?(object)
339
- if checksums && serialized && !object.files.any? {|f, line| changed_files.include?(f) }
342
+ if checksums && serialized && !object.files.any? {|f, _line| changed_files.include?(f) }
340
343
  true
341
344
  else
342
345
  log.debug "Re-generating object #{object.path}..."
@@ -351,7 +354,8 @@ module YARD
351
354
  #
352
355
  # @return (see YARD::Templates::Helpers::MarkupHelper#load_markup_provider)
353
356
  def verify_markup_options
354
- result, lvl = false, has_markup ? log.level : Logger::FATAL
357
+ result = false
358
+ lvl = has_markup ? log.level : Logger::FATAL
355
359
  obj = Struct.new(:options).new(options)
356
360
  obj.extend(Templates::Helpers::MarkupHelper)
357
361
  options.files.each do |file|
@@ -362,8 +366,8 @@ module YARD
362
366
  options.markup = :rdoc unless has_markup
363
367
  log.enter_level(lvl) { result = obj.load_markup_provider }
364
368
  if !result && !has_markup
365
- log.warn "Could not load default RDoc formatter, " +
366
- "ignoring any markup (install RDoc to get default formatting)."
369
+ log.warn "Could not load default RDoc formatter, " \
370
+ "ignoring any markup (install RDoc to get default formatting)."
367
371
  options.markup = :none
368
372
  true
369
373
  else
@@ -450,15 +454,13 @@ module YARD
450
454
  no_api = true if apis.delete('')
451
455
  exprs = []
452
456
 
453
- if apis.size > 0
454
- exprs << "#{apis.uniq.inspect}.include?(@api.text)"
455
- end
457
+ exprs << "#{apis.uniq.inspect}.include?(@api.text)" unless apis.empty?
456
458
 
457
- if hidden_apis.size > 0
459
+ unless hidden_apis.empty?
458
460
  exprs << "!#{hidden_apis.uniq.inspect}.include?(@api.text)"
459
461
  end
460
462
 
461
- exprs = exprs.size > 0 ? [exprs.join(' && ')] : []
463
+ exprs = !exprs.empty? ? [exprs.join(' && ')] : []
462
464
  exprs << "!@api" if no_api
463
465
 
464
466
  expr = exprs.join(' || ')
@@ -551,7 +553,7 @@ module YARD
551
553
  end
552
554
 
553
555
  opts.on('--exclude REGEXP', 'Ignores a file if it matches path match (regexp)') do |path|
554
- self.excluded << path
556
+ excluded << path
555
557
  end
556
558
  end
557
559
 
@@ -564,7 +566,7 @@ module YARD
564
566
  options.onefile = true
565
567
  end
566
568
 
567
- opts.on('--list', 'List objects to standard out (implies -n)') do |format|
569
+ opts.on('--list', 'List objects to standard out (implies -n)') do |_format|
568
570
  self.generate = false
569
571
  self.list = true
570
572
  end
@@ -646,7 +648,7 @@ module YARD
646
648
 
647
649
  opts.on('--asset FROM[:TO]', 'A file or directory to copy over to output ',
648
650
  ' directory after generating') do |asset|
649
- re = /^(?:\.\.\/|\/)/
651
+ re = %r{^(?:\.\./|/)}
650
652
  from, to = *asset.split(':').map {|f| File.cleanpath(f) }
651
653
  to ||= from
652
654
  if from =~ re || to =~ re
@@ -678,7 +680,8 @@ module YARD
678
680
  ' (default is system locale)') do |encoding|
679
681
  begin
680
682
  if defined?(Encoding) && Encoding.respond_to?(:default_external=)
681
- Encoding.default_external, Encoding.default_internal = encoding, encoding
683
+ Encoding.default_external = encoding
684
+ Encoding.default_internal = encoding
682
685
  end
683
686
  rescue ArgumentError => e
684
687
  raise OptionParser::InvalidOption, e
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'optparse'
2
3
 
3
4
  module YARD
@@ -82,8 +83,8 @@ module YARD
82
83
  opts.parse(args)
83
84
  rescue OptionParser::ParseError => err
84
85
  idx = args.index(err.args.first)
85
- args = args[(idx+1)..-1]
86
- args.shift while args.first && args.first[0,1] != '-'
86
+ args = args[(idx + 1)..-1]
87
+ args.shift while args.first && args.first[0, 1] != '-'
87
88
  retry
88
89
  end
89
90
  end
data/lib/yard/cli/yri.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'rbconfig'
2
3
 
3
4
  module YARD
@@ -57,12 +58,15 @@ module YARD
57
58
 
58
59
  if @name.nil? || @name.strip.empty?
59
60
  print_usage
60
- exit(1)
61
- elsif object = find_object(@name)
61
+ return exit(1)
62
+ end
63
+
64
+ object = find_object(@name)
65
+ if object
62
66
  print_object(object)
63
67
  else
64
68
  STDERR.puts "No documentation for `#{@name}'"
65
- exit(1)
69
+ return exit(1)
66
70
  end
67
71
  end
68
72
 
@@ -112,18 +116,16 @@ module YARD
112
116
 
113
117
  # Try to load it from in memory cache
114
118
  log.debug "Searching for #{name} in memory"
115
- if obj = try_load_object(name, nil)
116
- return obj
117
- end
119
+ obj = try_load_object(name, nil)
120
+ return obj if obj
118
121
 
119
122
  log.debug "Searching for #{name} in search paths"
120
123
  @search_paths.each do |path|
121
124
  next unless File.exist?(path)
122
125
  log.debug "Searching for #{name} in #{path}..."
123
126
  Registry.load(path)
124
- if obj = try_load_object(name, path)
125
- return obj
126
- end
127
+ obj = try_load_object(name, path)
128
+ return obj if obj
127
129
  end
128
130
  nil
129
131
  end
@@ -139,12 +141,9 @@ module YARD
139
141
  # No caching is done if this is nil.
140
142
  # @return [void]
141
143
  def try_load_object(name, cache_path)
142
- if obj = Registry.at(name)
143
- if cache_path
144
- cache_object(name, cache_path)
145
- end
146
- return obj
147
- end
144
+ obj = Registry.at(name)
145
+ cache_object(name, cache_path) if obj && cache_path
146
+ obj
148
147
  end
149
148
 
150
149
  # Loads {CACHE_FILE}
@@ -162,26 +161,28 @@ module YARD
162
161
  def add_gem_paths
163
162
  require 'rubygems'
164
163
  gem_paths = []
165
- Gem.source_index.find_name('').each do |spec|
166
- if yfile = Registry.yardoc_file_for_gem(spec.name)
167
- if spec.name =~ /^yard-doc-/
168
- gem_paths.unshift(yfile)
169
- else
170
- gem_paths.push(yfile)
171
- end
164
+ YARD::GemIndex.find_all_by_name('').each do |spec|
165
+ yfile = Registry.yardoc_file_for_gem(spec.name)
166
+ next if yfile.nil?
167
+
168
+ if spec.name =~ /^yard-doc-/
169
+ gem_paths.unshift(yfile)
170
+ else
171
+ gem_paths.push(yfile)
172
172
  end
173
173
  end
174
174
  @search_paths += gem_paths
175
175
  rescue LoadError
176
+ nil # noop
176
177
  end
177
178
 
178
179
  # Adds paths in {SEARCH_PATHS_FILE}
179
180
  # @since 0.5.1
180
181
  def add_default_paths
181
- @search_paths.push(*DEFAULT_SEARCH_PATHS)
182
+ @search_paths.concat(DEFAULT_SEARCH_PATHS)
182
183
  return unless File.file?(SEARCH_PATHS_FILE)
183
- paths = File.readlines(SEARCH_PATHS_FILE).map {|l| l.strip }
184
- @search_paths.push(*paths)
184
+ paths = File.readlines(SEARCH_PATHS_FILE).map(&:strip)
185
+ @search_paths.concat(paths)
185
186
  end
186
187
 
187
188
  # Parses commandline options.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module CodeObjects
3
4
  # A list of code objects. This array acts like a set (no unique items)
@@ -24,7 +25,7 @@ module YARD
24
25
  end
25
26
  self
26
27
  end
27
- alias_method :<<, :push
28
+ alias << push
28
29
  end
29
30
 
30
31
  extend NamespaceMapper
@@ -57,31 +58,40 @@ module YARD
57
58
  NAMESPACEMATCH = /(?:(?:#{NSEPQ}\s*)?#{CONSTANTMATCH})+/
58
59
 
59
60
  # Regular expression to match a method name
60
- METHODNAMEMATCH = /[a-zA-Z_]\w*[!?=]?|[-+~]\@|<<|>>|=~|===?|![=~]?|<=>|[<>]=?|\*\*|[-\/+%^&*~`|]|\[\]=?/
61
+ METHODNAMEMATCH = %r{[a-zA-Z_]\w*[!?=]?|[-+~]\@|<<|>>|=~|===?|![=~]?|<=>|[<>]=?|\*\*|[-/+%^&*~`|]|\[\]=?}
61
62
 
62
63
  # Regular expression to match a fully qualified method def (self.foo, Class.foo).
63
64
  METHODMATCH = /(?:(?:#{NAMESPACEMATCH}|[a-z]\w*)\s*(?:#{CSEPQ}|#{NSEPQ})\s*)?#{METHODNAMEMATCH}/
64
65
 
65
66
  # All builtin Ruby exception classes for inheritance tree.
66
- BUILTIN_EXCEPTIONS = ["SecurityError", "Exception", "NoMethodError", "FloatDomainError",
67
- "IOError", "TypeError", "NotImplementedError", "SystemExit", "Interrupt", "SyntaxError",
68
- "RangeError", "NoMemoryError", "ArgumentError", "ThreadError", "EOFError", "RuntimeError",
69
- "ZeroDivisionError", "StandardError", "LoadError", "NameError", "LocalJumpError", "SystemCallError",
70
- "SignalException", "ScriptError", "SystemStackError", "RegexpError", "IndexError"]
67
+ BUILTIN_EXCEPTIONS = ["ArgumentError", "ClosedQueueError", "EncodingError",
68
+ "EOFError", "Exception", "FiberError", "FloatDomainError", "IndexError",
69
+ "Interrupt", "IOError", "KeyError", "LoadError", "LocalJumpError",
70
+ "NameError", "NoMemoryError", "NoMethodError", "NotImplementedError",
71
+ "RangeError", "RegexpError", "RuntimeError", "ScriptError", "SecurityError",
72
+ "SignalException", "StandardError", "StopIteration", "SyntaxError",
73
+ "SystemCallError", "SystemExit", "SystemStackError", "ThreadError",
74
+ "TypeError", "UncaughtThrowError", "ZeroDivisionError"]
75
+
71
76
  # All builtin Ruby classes for inheritance tree.
72
77
  # @note MatchingData is a 1.8.x legacy class
73
- BUILTIN_CLASSES = ["TrueClass", "Array", "Dir", "Struct", "UnboundMethod", "Object", "Fixnum", "Float",
74
- "ThreadGroup", "MatchingData", "MatchData", "Proc", "Binding", "Class", "Time", "Bignum", "NilClass", "Symbol",
75
- "Numeric", "String", "Data", "MatchData", "Regexp", "Integer", "File", "IO", "Range", "FalseClass",
76
- "Method", "Continuation", "Thread", "Hash", "Module"] + BUILTIN_EXCEPTIONS
78
+ BUILTIN_CLASSES = ["Array", "Bignum", "Binding", "Class", "Complex",
79
+ "ConditionVariable", "Data", "Dir", "Encoding", "Enumerator", "FalseClass",
80
+ "Fiber", "File", "Fixnum", "Float", "Hash", "IO", "Integer", "MatchData",
81
+ "Method", "Module", "NilClass", "Numeric", "Object", "Proc", "Queue",
82
+ "Random", "Range", "Rational", "Regexp", "RubyVM", "SizedQueue", "String",
83
+ "Struct", "Symbol", "Thread", "ThreadGroup", "Time", "TracePoint",
84
+ "TrueClass", "UnboundMethod"] + BUILTIN_EXCEPTIONS
85
+
77
86
  # All builtin Ruby modules for mixin handling.
78
- BUILTIN_MODULES = ["ObjectSpace", "Signal", "Marshal", "Kernel", "Process", "GC", "FileTest", "Enumerable",
79
- "Comparable", "Errno", "Precision", "Math"]
87
+ BUILTIN_MODULES = ["Comparable", "Enumerable", "Errno", "FileTest", "GC",
88
+ "Kernel", "Marshal", "Math", "ObjectSpace", "Precision", "Process", "Signal"]
89
+
80
90
  # All builtin Ruby classes and modules.
81
91
  BUILTIN_ALL = BUILTIN_CLASSES + BUILTIN_MODULES
82
92
 
83
93
  # Hash of {BUILTIN_EXCEPTIONS} as keys and true as value (for O(1) lookups)
84
- BUILTIN_EXCEPTIONS_HASH = BUILTIN_EXCEPTIONS.inject({}) {|h,n| h.update(n => true) }
94
+ BUILTIN_EXCEPTIONS_HASH = BUILTIN_EXCEPTIONS.inject({}) {|h, n| h.update(n => true) }
85
95
 
86
96
  # +Base+ is the superclass of all code objects recognized by YARD. A code
87
97
  # object is any entity in the Ruby language (class, method, module). A
@@ -182,7 +192,7 @@ module YARD
182
192
  namespace = Proxy.new(namespace.namespace, namespace.value)
183
193
  end
184
194
 
185
- if name.to_s[0,2] == NSEP
195
+ if name.to_s[0, 2] == NSEP
186
196
  name = name.to_s[2..-1]
187
197
  namespace = Registry.root
188
198
  end
@@ -221,9 +231,9 @@ module YARD
221
231
  # @yield [self] a block to perform any extra initialization on the object
222
232
  # @yieldparam [Base] self the newly initialized code object
223
233
  # @return [Base] the newly created object
224
- def initialize(namespace, name, *args, &block)
234
+ def initialize(namespace, name, *)
225
235
  if namespace && namespace != :root &&
226
- !namespace.is_a?(NamespaceObject) && !namespace.is_a?(Proxy)
236
+ !namespace.is_a?(NamespaceObject) && !namespace.is_a?(Proxy)
227
237
  raise ArgumentError, "Invalid namespace object: #{namespace}"
228
238
  end
229
239
 
@@ -262,7 +272,7 @@ module YARD
262
272
  # @return [String] if prefix is true, prefix + the name as a String.
263
273
  # This must be implemented by the subclass.
264
274
  def name(prefix = false)
265
- prefix ? @name.to_s : @name
275
+ prefix ? @name.to_s : (defined?(@name) && @name)
266
276
  end
267
277
 
268
278
  # Associates a file with a code object, optionally adding the line where it was defined.
@@ -408,11 +418,8 @@ module YARD
408
418
  # into a docstring and meta tags.
409
419
  def docstring=(comments)
410
420
  @docstrings.clear
411
- if Docstring === comments
412
- @docstring = comments
413
- else
414
- @docstring = Docstring.new(comments, self)
415
- end
421
+ @docstring = Docstring === comments ?
422
+ comments : Docstring.new(comments, self)
416
423
  end
417
424
 
418
425
  # Default type is the lowercase class name without the "Object" suffix.
@@ -434,12 +441,12 @@ module YARD
434
441
  # @see #sep
435
442
  def path
436
443
  @path ||= if parent && !parent.root?
437
- [parent.path, name.to_s].join(sep)
438
- else
439
- name.to_s
440
- end
444
+ [parent.path, name.to_s].join(sep)
445
+ else
446
+ name.to_s
447
+ end
441
448
  end
442
- alias_method :to_s, :path
449
+ alias to_s path
443
450
 
444
451
  # @note
445
452
  # Override this method if your object has a special title that does
@@ -465,11 +472,8 @@ module YARD
465
472
  common = [path, other].join(" ").match(/^(\S*)\S*(?: \1\S*)*$/)[1]
466
473
  common = path unless common =~ /(\.|::|#)$/
467
474
  common = common.sub(/(\.|::|#)[^:#\.]*?$/, '') if same_parent
468
- if %w(. :).include?(common[-1,1]) || other[common.size,1] == '#'
469
- suffix = ''
470
- else
471
- suffix = '(::|\.)'
472
- end
475
+ suffix = %w(. :).include?(common[-1, 1]) || other[common.size, 1] == '#' ?
476
+ '' : '(::|\.)'
473
477
  result = other.sub(/^#{Regexp.quote common}#{suffix}/, '')
474
478
  result.empty? ? other : result
475
479
  end
@@ -489,7 +493,7 @@ module YARD
489
493
  # @see Templates::Engine#render
490
494
  def format(options = {})
491
495
  options = options.merge(:object => self)
492
- options = options.merge(:type => type) if !options[:type]
496
+ options = options.merge(:type => type) unless options[:type]
493
497
  Templates::Engine.render(options)
494
498
  end
495
499
 
@@ -520,8 +524,8 @@ module YARD
520
524
  end
521
525
  end
522
526
 
523
- alias_method :parent, :namespace
524
- alias_method :parent=, :namespace=
527
+ alias parent namespace
528
+ alias parent= namespace=
525
529
 
526
530
  # Gets a tag from the {#docstring}
527
531
  # @see Docstring#tag
@@ -577,7 +581,7 @@ module YARD
577
581
  # @param [String] source the source code to format
578
582
  # @return [String] formatted source
579
583
  def format_source(source)
580
- source.chomp!
584
+ source = source.chomp
581
585
  last = source.split(/\r?\n/).last
582
586
  indent = last ? last[/^([ \t]*)/, 1].length : 0
583
587
  source.gsub(/^[ \t]{#{indent}}/, '')
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD::CodeObjects
2
3
  register_separator NSEP, :class
3
4
 
@@ -32,7 +33,7 @@ module YARD::CodeObjects
32
33
  #
33
34
  # @return [Boolean] whether the object represents a Ruby exception
34
35
  def is_exception?
35
- inheritance_tree.reverse.any? {|o| BUILTIN_EXCEPTIONS_HASH.has_key? o.path }
36
+ inheritance_tree.reverse.any? {|o| BUILTIN_EXCEPTIONS_HASH.key? o.path }
36
37
  end
37
38
 
38
39
  # Returns the inheritance tree of the object including self.
@@ -136,7 +137,7 @@ module YARD::CodeObjects
136
137
  end
137
138
 
138
139
  if @superclass == self
139
- msg = "superclass #{@superclass.inspect} cannot be the same as the declared class #{self.inspect}"
140
+ msg = "superclass #{@superclass.inspect} cannot be the same as the declared class #{inspect}"
140
141
  @superclass = P("::Object")
141
142
  raise ArgumentError, msg
142
143
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD::CodeObjects
2
3
  register_separator NSEP, :class_variable
3
4
 
@@ -7,4 +8,4 @@ module YARD::CodeObjects
7
8
  # @return [String] the class variable's value
8
9
  attr_accessor :value
9
10
  end
10
- end
11
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD::CodeObjects
2
3
  register_separator NSEP, :constant
3
4
 
@@ -12,4 +13,4 @@ module YARD::CodeObjects
12
13
  @value = format_source(value)
13
14
  end
14
15
  end
15
- end
16
+ end