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
data/lib/yard/cli/diff.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'tmpdir'
2
3
  require 'fileutils'
3
4
  require 'open-uri'
@@ -29,21 +30,19 @@ module YARD
29
30
  if @use_git
30
31
  load_git_commit(gemfile)
31
32
  all_objects
33
+ elsif load_gem_data(gemfile)
34
+ log.info "Found #{gemfile}"
35
+ all_objects
32
36
  else
33
- if load_gem_data(gemfile)
34
- log.info "Found #{gemfile}"
35
- all_objects
36
- else
37
- log.error "Cannot find gem #{gemfile}"
38
- nil
39
- end
37
+ log.error "Cannot find gem #{gemfile}"
38
+ nil
40
39
  end
41
40
  end.compact
42
41
 
43
42
  return if registry.size != 2
44
43
 
45
44
  first_object = nil
46
- [ ["Added objects", "A", added_objects(*registry)],
45
+ [["Added objects", "A", added_objects(*registry)],
47
46
  ["Modified objects", "M", modified_objects(*registry)],
48
47
  ["Removed objects", "D", removed_objects(*registry)]].each do |name, short, objects|
49
48
  next if short == "M" && @modified == false
@@ -51,7 +50,7 @@ module YARD
51
50
  last_object = nil
52
51
  all_objects_notice = false
53
52
  log.puts name + ":" unless @compact
54
- objects.sort_by {|o| o.path }.each do |object|
53
+ objects.sort_by(&:path).each do |object|
55
54
  if !@list_all && last_object && object.parent == last_object
56
55
  log.print " (...)" unless all_objects_notice
57
56
  all_objects_notice = true
@@ -63,7 +62,7 @@ module YARD
63
62
  end
64
63
  all_objects_notice = false
65
64
  log.print "" + (@compact ? "#{short} " : " ") +
66
- object.path + " (#{object.file}:#{object.line})"
65
+ object.path + " (#{object.file}:#{object.line})"
67
66
  last_object = object
68
67
  first_object = true
69
68
  end
@@ -123,30 +122,29 @@ module YARD
123
122
  # First check for argument as .yardoc file
124
123
  [File.join(gemfile, '.yardoc'), gemfile].each do |yardoc|
125
124
  log.info "Searching for .yardoc db at #{yardoc}"
126
- if File.directory?(yardoc)
127
- Registry.load_yardoc(yardoc)
128
- Registry.load_all
129
- return true
130
- end
125
+ next unless File.directory?(yardoc)
126
+ Registry.load_yardoc(yardoc)
127
+ Registry.load_all
128
+ return true
131
129
  end
132
130
 
133
131
  # Next check installed RubyGems
134
132
  gemfile_without_ext = gemfile.sub(/\.gem$/, '')
135
133
  log.info "Searching for installed gem #{gemfile_without_ext}"
136
- Gem.source_index.find_name('').find do |spec|
137
- if spec.full_name == gemfile_without_ext
138
- if yardoc = Registry.yardoc_file_for_gem(spec.name, "= #{spec.version}")
139
- Registry.load_yardoc(yardoc)
140
- Registry.load_all
141
- else
142
- log.enter_level(Logger::ERROR) do
143
- olddir = Dir.pwd
144
- Gems.run(spec.name, spec.version.to_s)
145
- Dir.chdir(olddir)
146
- end
134
+ YARD::GemIndex.find_all_by_name('').find do |spec|
135
+ next unless spec.full_name == gemfile_without_ext
136
+ yardoc = Registry.yardoc_file_for_gem(spec.name, "= #{spec.version}")
137
+ if yardoc
138
+ Registry.load_yardoc(yardoc)
139
+ Registry.load_all
140
+ else
141
+ log.enter_level(Logger::ERROR) do
142
+ olddir = Dir.pwd
143
+ Gems.run(spec.name, spec.version.to_s)
144
+ Dir.chdir(olddir)
147
145
  end
148
- return true
149
146
  end
147
+ return true
150
148
  end
151
149
 
152
150
  # Look for local .gem file
@@ -166,6 +164,7 @@ module YARD
166
164
  open(url) {|io| expand_and_parse(gemfile, io) }
167
165
  return true
168
166
  rescue OpenURI::HTTPError
167
+ nil # noop
169
168
  end
170
169
  false
171
170
  end
@@ -177,7 +176,6 @@ module YARD
177
176
  end
178
177
 
179
178
  def generate_yardoc(dir)
180
- olddir = Dir.pwd
181
179
  Dir.chdir(dir) do
182
180
  log.enter_level(Logger::ERROR) { Yardoc.run('-n', '--no-save') }
183
181
  end
@@ -192,21 +190,23 @@ module YARD
192
190
  require 'rubygems/package/tar_reader'
193
191
  reader = Gem::Package::TarReader.new(io)
194
192
  reader.each do |pkg|
195
- if pkg.full_name == 'data.tar.gz'
196
- Zlib::GzipReader.wrap(pkg) do |gzio|
197
- tar = Gem::Package::TarReader.new(gzio)
198
- tar.each do |entry|
199
- mode = entry.header.mode
200
- file = File.join(tmpdir, entry.full_name)
201
- FileUtils.mkdir_p(File.dirname(file))
202
- File.open(file, 'wb') do |out|
203
- out.write(entry.read)
204
- out.fsync rescue nil
193
+ next unless pkg.full_name == 'data.tar.gz'
194
+ Zlib::GzipReader.wrap(pkg) do |gzio|
195
+ tar = Gem::Package::TarReader.new(gzio)
196
+ tar.each do |entry|
197
+ file = File.join(tmpdir, entry.full_name)
198
+ FileUtils.mkdir_p(File.dirname(file))
199
+ File.open(file, 'wb') do |out|
200
+ out.write(entry.read)
201
+ begin
202
+ out.fsync
203
+ rescue NotImplementedError
204
+ nil # noop
205
205
  end
206
206
  end
207
207
  end
208
- break
209
208
  end
209
+ break
210
210
  end
211
211
  else
212
212
  Gem::Package.open(io) do |pkg|
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module CLI
3
4
  # Display one object
@@ -53,7 +54,7 @@ module YARD
53
54
  @objects = args.map {|o| Registry.at(o) }
54
55
 
55
56
  # validation
56
- return false if @objects.any? {|o| o.nil? }
57
+ return false if @objects.any?(&:nil?)
57
58
  verify_markup_options
58
59
  end
59
60
 
data/lib/yard/cli/gems.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module CLI
3
4
  # @since 0.6.0
@@ -45,8 +46,9 @@ module YARD
45
46
 
46
47
  def add_gems(gems)
47
48
  0.step(gems.size - 1, 2) do |index|
48
- gem, ver_require = gems[index], gems[index + 1] || ">= 0"
49
- specs = Gem.source_index.find_name(gem, ver_require)
49
+ gem = gems[index]
50
+ ver_require = gems[index + 1] || ">= 0"
51
+ specs = YARD::GemIndex.find_all_by_name(gem, ver_require)
50
52
  if specs.empty?
51
53
  log.warn "#{gem} #{ver_require} could not be found in RubyGems index"
52
54
  else
@@ -71,13 +73,12 @@ module YARD
71
73
  parse_options(opts, args)
72
74
  add_gems(args)
73
75
 
74
-
75
76
  if !args.empty? && @gems.empty?
76
77
  log.error "No specified gems could be found for command"
77
78
  elsif @gems.empty?
78
- @gems += Gem.source_index.find_name('') if @gems.empty?
79
+ @gems += YARD::GemIndex.find_all_by_name('') if @gems.empty?
79
80
  end
80
81
  end
81
82
  end
82
83
  end
83
- end
84
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module CLI
3
4
  # Options to pass to the {Graph} CLI.
@@ -115,11 +116,9 @@ module YARD
115
116
 
116
117
  expression = "#{visibilities.uniq.inspect}.include?(object.visibility)"
117
118
  options.verifier = Verifier.new(expression)
118
- if args.first
119
- @objects = args.map {|o| Registry.at(o) }.compact
120
- else
121
- @objects = [Registry.root]
122
- end
119
+ @objects = args.first ?
120
+ args.map {|o| Registry.at(o) }.compact :
121
+ [Registry.root]
123
122
  end
124
123
  end
125
124
  end
data/lib/yard/cli/help.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module CLI
3
4
  # Handles help for commands
@@ -6,7 +7,8 @@ module YARD
6
7
  def description; "Retrieves help for a command" end
7
8
 
8
9
  def run(*args)
9
- if args.first && cmd = CommandParser.commands[args.first.to_sym]
10
+ cmd = args.first && CommandParser.commands[args.first.to_sym]
11
+ if cmd
10
12
  cmd.run('--help')
11
13
  else
12
14
  log.puts "Command #{args.first} not found." if args.first
@@ -15,4 +17,4 @@ module YARD
15
17
  end
16
18
  end
17
19
  end
18
- end
20
+ end
data/lib/yard/cli/i18n.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "pathname"
2
3
 
3
4
  module YARD
@@ -20,7 +21,7 @@ module YARD
20
21
  end
21
22
 
22
23
  def run(*args)
23
- if args.size == 0 || !args.first.nil?
24
+ if args.empty? || !args.first.nil?
24
25
  # fail early if arguments are not valid
25
26
  return unless parse_arguments(*args)
26
27
  end
data/lib/yard/cli/list.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module CLI
3
4
  # Lists all constant and method names in the codebase. Uses {Yardoc} --list.
@@ -19,4 +20,4 @@ module YARD
19
20
  end
20
21
  end
21
22
  end
22
- end
23
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module CLI
3
4
  # Lists all markup types
@@ -10,7 +11,7 @@ module YARD
10
11
  #
11
12
  # @param [Array<String>] args the list of arguments.
12
13
  # @return [void]
13
- def run(*args)
14
+ def run(*args) # rubocop:disable Lint/UnusedMethodArgument
14
15
  log.puts "Available markup types for `doc' command:"
15
16
  log.puts
16
17
  types = Templates::Helpers::MarkupHelper::MARKUP_PROVIDERS
@@ -18,11 +19,9 @@ module YARD
18
19
  types.sort_by {|name, _| name.to_s }.each do |name, providers|
19
20
  log.puts "[#{name}]"
20
21
  libs = providers.map {|p| p[:lib] }.compact
21
- if libs.size > 0
22
- log.puts " Providers: #{libs.join(" ")}"
23
- end
22
+ log.puts " Providers: #{libs.join(" ")}" unless libs.empty?
24
23
  if exts[name]
25
- log.puts " Extensions: #{exts[name].map {|e| ".#{e}"}.join(" ")}"
24
+ log.puts " Extensions: #{exts[name].map {|e| ".#{e}" }.join(" ")}"
26
25
  end
27
26
 
28
27
  log.puts
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module CLI
3
4
  # A local documentation server
@@ -71,7 +72,8 @@ module YARD
71
72
 
72
73
  def add_libraries(args)
73
74
  (0...args.size).step(2) do |index|
74
- library, dir = args[index], args[index + 1]
75
+ library = args[index]
76
+ dir = args[index + 1]
75
77
 
76
78
  libver = nil
77
79
  if dir
@@ -109,23 +111,23 @@ module YARD
109
111
  # @return [LibraryVersion, nil]
110
112
  def create_library_version_if_yardopts_exist(library, dir)
111
113
  if dir
112
- options_file = File.join(dir, Yardoc::DEFAULT_YARDOPTS_FILE)
113
- if File.exist?(options_file)
114
- # Found yardopts, extract db path
115
- yfile = extract_db_from_options_file(options_file)
116
- db = File.expand_path(yfile, dir)
117
-
118
- # Create libver
119
- libver = YARD::Server::LibraryVersion.new(library, nil, db)
120
- libver.source_path = dir
121
- libver
122
- end
114
+ options_file = File.join(dir, Yardoc::DEFAULT_YARDOPTS_FILE)
115
+ if File.exist?(options_file)
116
+ # Found yardopts, extract db path
117
+ yfile = extract_db_from_options_file(options_file)
118
+ db = File.expand_path(yfile, dir)
119
+
120
+ # Create libver
121
+ libver = YARD::Server::LibraryVersion.new(library, nil, db)
122
+ libver.source_path = dir
123
+ libver
124
+ end
123
125
  end
124
126
  end
125
127
 
126
128
  def add_gems
127
129
  require 'rubygems'
128
- Gem.source_index.find_name('').each do |spec|
130
+ YARD::GemIndex.find_all_by_name('').each do |spec|
129
131
  libraries[spec.name] ||= []
130
132
  libraries[spec.name] |= [YARD::Server::LibraryVersion.new(spec.name, spec.version.to_s, nil, :gem)]
131
133
  end
@@ -174,7 +176,7 @@ module YARD
174
176
  end
175
177
  opts.on('-t', '--template-path PATH',
176
178
  'The template path to look for templates in. (used with -t).') do |path|
177
- self.template_paths << path
179
+ template_paths << path
178
180
  end
179
181
  opts.separator ''
180
182
  opts.separator "Web Server Options:"
@@ -183,7 +185,7 @@ module YARD
183
185
  end
184
186
  opts.on('-B HOST', '--bind', 'The host address to bind to') do |host|
185
187
  server_options[:Host] = host.to_s
186
- end
188
+ end
187
189
  opts.on('-p PORT', '--port', 'Serves documentation on PORT') do |port|
188
190
  server_options[:Port] = port.to_i
189
191
  end
@@ -191,20 +193,23 @@ module YARD
191
193
  server_options[:DocumentRoot] = File.expand_path(docroot)
192
194
  end
193
195
  opts.on('-a', '--adapter ADAPTER', 'Use the ADAPTER (full Ruby class) for web server') do |adapter|
194
- if adapter.downcase == 'webrick'
196
+ if adapter.casecmp('webrick') == 0
195
197
  self.adapter = YARD::Server::WebrickAdapter
196
- elsif adapter.downcase == 'rack'
198
+ elsif adapter.casecmp('rack') == 0
197
199
  self.adapter = YARD::Server::RackAdapter
198
200
  else
199
- self.adapter = eval(adapter)
201
+ self.adapter = eval(adapter) # rubocop:disable Lint/Eval
200
202
  end
201
203
  end
202
204
  opts.on('-s', '--server TYPE', 'Use a specific server type eg. thin,mongrel,cgi (Rack specific)') do |type|
203
205
  server_options[:server] = type
204
206
  end
207
+ opts.on('--fork', 'Use process forking when serving requests') do
208
+ options[:use_fork] = true
209
+ end
205
210
  common_options(opts)
206
211
  opts.on('-e', '--load FILE', 'A Ruby script to load before the source tree is parsed.') do |file|
207
- self.scripts << file
212
+ scripts << file
208
213
  end
209
214
  parse_options(opts, args)
210
215
 
@@ -215,9 +220,7 @@ module YARD
215
220
  # Generate doc for first time
216
221
  # This is not necessary but makes for a better first-run experience
217
222
  libver = libraries.empty? ? nil : libraries.values.first.first
218
- if libver and !libver.ready?
219
- generate_doc_for_first_time(libver)
220
- end
223
+ generate_doc_for_first_time(libver) if libver && !libver.ready?
221
224
  else
222
225
  add_libraries(args)
223
226
  options[:single_library] = false if libraries.size > 1
@@ -226,7 +229,7 @@ module YARD
226
229
 
227
230
  def generate_doc_for_first_time(libver)
228
231
  log.enter_level(Logger::INFO) do
229
- yardoc_file = libver.yardoc_file.sub /^#{Regexp.quote Dir.pwd}[\\\/]+/, ''
232
+ yardoc_file = libver.yardoc_file.sub(%r{^#{Regexp.quote Dir.pwd}[\\/]+}, '')
230
233
  log.info "No yardoc db found in #{yardoc_file}, parsing source before starting server..."
231
234
  end
232
235
  Dir.chdir(libver.source_path) do
@@ -243,7 +246,7 @@ module YARD
243
246
  begin
244
247
  opts.parse!(args)
245
248
  rescue OptionParser::ParseError
246
- args.shift if args.first && args.first[0,1] != '-'
249
+ args.shift if args.first && args.first[0, 1] != '-'
247
250
  retry
248
251
  end
249
252
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module YARD
2
3
  module CLI
3
4
  # @since 0.6.0
@@ -49,8 +50,9 @@ module YARD
49
50
  # To add statistics for a specific type, add a method +#stats_for_TYPE+
50
51
  # to this class that calls {#output}.
51
52
  def print_statistics
52
- @total, @undocumented = 0, 0
53
- meths = methods.map {|m| m.to_s }.grep(/^stats_for_/)
53
+ @total = 0
54
+ @undocumented = 0
55
+ meths = methods.map(&:to_s).grep(/^stats_for_/)
54
56
  STATS_ORDER.each do |meth|
55
57
  mname = "stats_for_#{meth}"
56
58
  if meths.include?(mname)
@@ -60,13 +62,14 @@ module YARD
60
62
  end
61
63
  meths.each {|m| send(m) }
62
64
 
63
- if @undocumented == 0
64
- total = 100
65
- elsif @total == 0
66
- total = 0
67
- else
68
- total = (@total - @undocumented).to_f / @total.to_f * 100
69
- end
65
+ total =
66
+ if @undocumented == 0
67
+ 100
68
+ elsif @total == 0
69
+ 0
70
+ else
71
+ (@total - @undocumented).to_f / @total.to_f * 100
72
+ end
70
73
  log.puts("% 3.2f%% documented" % total)
71
74
  end
72
75
 
@@ -137,8 +140,8 @@ module YARD
137
140
  # Statistics for methods
138
141
  def stats_for_methods
139
142
  objs = all_objects.select {|m| m.type == :method }
140
- objs.reject! {|m| m.is_alias? }
141
- objs.reject! {|m| m.is_attribute? }
143
+ objs.reject!(&:is_alias?)
144
+ objs.reject!(&:is_attribute?)
142
145
  undoc = objs.select {|m| m.docstring.blank? }
143
146
  @undoc_list |= undoc if @undoc_list
144
147
  output "Methods", objs.size, undoc.size
@@ -156,11 +159,12 @@ module YARD
156
159
  def output(name, data, undoc = nil)
157
160
  @total += data if data.is_a?(Integer) && undoc
158
161
  @undocumented += undoc if undoc.is_a?(Integer)
159
- if undoc
160
- data = ("%5s (% 5d undocumented)" % [data, undoc])
161
- else
162
- data = "%5s" % data
163
- end
162
+ data =
163
+ if undoc
164
+ ("%5s (% 5d undocumented)" % [data, undoc])
165
+ else
166
+ "%5s" % data
167
+ end
164
168
  log.puts("%-12s %s" % [name + ":", data])
165
169
  end
166
170