yard 0.9.17 → 0.9.22

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 (590) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +2 -0
  3. data/.github/ISSUE_TEMPLATE.md +33 -0
  4. data/.github/PULL_REQUEST_TEMPLATE.md +12 -0
  5. data/.gitignore +14 -0
  6. data/.rspec +2 -0
  7. data/.rubocop.yml +99 -0
  8. data/.travis.yml +52 -0
  9. data/.yardopts +26 -26
  10. data/.yardopts_guide +19 -0
  11. data/.yardopts_i18n +23 -0
  12. data/CHANGELOG.md +774 -728
  13. data/CODE_OF_CONDUCT.md +15 -0
  14. data/CONTRIBUTING.md +140 -0
  15. data/Dockerfile.samus +28 -0
  16. data/Gemfile +32 -0
  17. data/LEGAL +66 -66
  18. data/LICENSE +22 -22
  19. data/README.md +330 -328
  20. data/Rakefile +37 -53
  21. data/SECURITY.md +26 -0
  22. data/benchmarks/builtins_vs_eval.rb +24 -24
  23. data/benchmarks/concat_vs_join.rb +13 -13
  24. data/benchmarks/erb_vs_erubis.rb +54 -54
  25. data/benchmarks/format_args.rb +47 -47
  26. data/benchmarks/generation.rb +38 -38
  27. data/benchmarks/marshal_vs_dbm.rb +64 -64
  28. data/benchmarks/parsing.rb +46 -46
  29. data/benchmarks/pathname_vs_string.rb +50 -50
  30. data/benchmarks/rdoc_vs_yardoc.rb +11 -11
  31. data/benchmarks/registry_store_types.rb +49 -49
  32. data/benchmarks/ri_vs_yri.rb +19 -19
  33. data/benchmarks/ripper_parser.rb +13 -13
  34. data/benchmarks/splat_vs_flatten.rb +13 -13
  35. data/benchmarks/template_erb.rb +23 -23
  36. data/benchmarks/template_format.rb +7 -7
  37. data/benchmarks/template_profile.rb +18 -18
  38. data/benchmarks/yri_cache.rb +20 -20
  39. data/bin/yard +13 -13
  40. data/bin/yardoc +13 -13
  41. data/bin/yri +13 -13
  42. data/docs/CodeObjects.md +115 -115
  43. data/docs/GettingStarted.md +679 -679
  44. data/docs/Handlers.md +152 -152
  45. data/docs/Overview.md +61 -61
  46. data/docs/Parser.md +191 -191
  47. data/docs/Tags.md +283 -283
  48. data/docs/TagsArch.md +123 -123
  49. data/docs/Templates.md +496 -496
  50. data/docs/WhatsNew.md +1245 -1245
  51. data/docs/templates/default/fulldoc/html/full_list_tag.erb +8 -8
  52. data/docs/templates/default/fulldoc/html/setup.rb +6 -6
  53. data/docs/templates/default/layout/html/setup.rb +9 -9
  54. data/docs/templates/default/layout/html/tag_list.erb +11 -11
  55. data/docs/templates/default/yard_tags/html/list.erb +18 -18
  56. data/docs/templates/default/yard_tags/html/setup.rb +26 -26
  57. data/docs/templates/plugin.rb +70 -70
  58. data/lib/rubygems_plugin.rb +9 -9
  59. data/lib/yard.rb +69 -69
  60. data/lib/yard/autoload.rb +308 -303
  61. data/lib/yard/cli/command.rb +85 -85
  62. data/lib/yard/cli/command_parser.rb +93 -93
  63. data/lib/yard/cli/config.rb +198 -198
  64. data/lib/yard/cli/diff.rb +270 -270
  65. data/lib/yard/cli/display.rb +69 -69
  66. data/lib/yard/cli/gems.rb +84 -84
  67. data/lib/yard/cli/graph.rb +125 -125
  68. data/lib/yard/cli/help.rb +20 -20
  69. data/lib/yard/cli/i18n.rb +70 -70
  70. data/lib/yard/cli/list.rb +23 -23
  71. data/lib/yard/cli/markup_types.rb +32 -32
  72. data/lib/yard/cli/server.rb +257 -257
  73. data/lib/yard/cli/stats.rb +231 -231
  74. data/lib/yard/cli/yardoc.rb +789 -788
  75. data/lib/yard/cli/yardopts_command.rb +110 -110
  76. data/lib/yard/cli/yri.rb +215 -215
  77. data/lib/yard/code_objects/base.rb +622 -615
  78. data/lib/yard/code_objects/class_object.rb +146 -146
  79. data/lib/yard/code_objects/class_variable_object.rb +11 -11
  80. data/lib/yard/code_objects/constant_object.rb +16 -16
  81. data/lib/yard/code_objects/extended_method_object.rb +24 -24
  82. data/lib/yard/code_objects/extra_file_object.rb +134 -131
  83. data/lib/yard/code_objects/macro_object.rb +172 -172
  84. data/lib/yard/code_objects/method_object.rb +196 -196
  85. data/lib/yard/code_objects/module_object.rb +21 -21
  86. data/lib/yard/code_objects/namespace_mapper.rb +114 -114
  87. data/lib/yard/code_objects/namespace_object.rb +200 -200
  88. data/lib/yard/code_objects/proxy.rb +244 -240
  89. data/lib/yard/code_objects/root_object.rb +19 -19
  90. data/lib/yard/config.rb +270 -270
  91. data/lib/yard/core_ext/array.rb +16 -16
  92. data/lib/yard/core_ext/file.rb +69 -69
  93. data/lib/yard/core_ext/hash.rb +16 -16
  94. data/lib/yard/core_ext/insertion.rb +63 -63
  95. data/lib/yard/core_ext/module.rb +11 -20
  96. data/lib/yard/core_ext/string.rb +68 -68
  97. data/lib/yard/core_ext/symbol_hash.rb +75 -75
  98. data/lib/yard/docstring.rb +386 -386
  99. data/lib/yard/docstring_parser.rb +345 -345
  100. data/lib/yard/gem_index.rb +29 -29
  101. data/lib/yard/globals.rb +22 -22
  102. data/lib/yard/handlers/base.rb +595 -595
  103. data/lib/yard/handlers/c/alias_handler.rb +16 -16
  104. data/lib/yard/handlers/c/attribute_handler.rb +13 -13
  105. data/lib/yard/handlers/c/base.rb +129 -129
  106. data/lib/yard/handlers/c/class_handler.rb +27 -27
  107. data/lib/yard/handlers/c/constant_handler.rb +13 -13
  108. data/lib/yard/handlers/c/handler_methods.rb +212 -211
  109. data/lib/yard/handlers/c/init_handler.rb +20 -20
  110. data/lib/yard/handlers/c/method_handler.rb +45 -45
  111. data/lib/yard/handlers/c/mixin_handler.rb +21 -21
  112. data/lib/yard/handlers/c/module_handler.rb +17 -17
  113. data/lib/yard/handlers/c/override_comment_handler.rb +31 -31
  114. data/lib/yard/handlers/c/path_handler.rb +11 -11
  115. data/lib/yard/handlers/c/struct_handler.rb +13 -13
  116. data/lib/yard/handlers/c/symbol_handler.rb +8 -8
  117. data/lib/yard/handlers/common/method_handler.rb +19 -0
  118. data/lib/yard/handlers/processor.rb +200 -200
  119. data/lib/yard/handlers/ruby/alias_handler.rb +45 -44
  120. data/lib/yard/handlers/ruby/attribute_handler.rb +87 -87
  121. data/lib/yard/handlers/ruby/base.rb +165 -165
  122. data/lib/yard/handlers/ruby/class_condition_handler.rb +92 -92
  123. data/lib/yard/handlers/ruby/class_handler.rb +119 -119
  124. data/lib/yard/handlers/ruby/class_variable_handler.rb +17 -17
  125. data/lib/yard/handlers/ruby/comment_handler.rb +10 -10
  126. data/lib/yard/handlers/ruby/constant_handler.rb +55 -59
  127. data/lib/yard/handlers/ruby/decorator_handler_methods.rb +123 -123
  128. data/lib/yard/handlers/ruby/dsl_handler.rb +15 -15
  129. data/lib/yard/handlers/ruby/dsl_handler_methods.rb +96 -96
  130. data/lib/yard/handlers/ruby/exception_handler.rb +27 -27
  131. data/lib/yard/handlers/ruby/extend_handler.rb +22 -22
  132. data/lib/yard/handlers/ruby/legacy/alias_handler.rb +37 -37
  133. data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +65 -65
  134. data/lib/yard/handlers/ruby/legacy/base.rb +245 -245
  135. data/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +83 -83
  136. data/lib/yard/handlers/ruby/legacy/class_handler.rb +113 -113
  137. data/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +15 -15
  138. data/lib/yard/handlers/ruby/legacy/comment_handler.rb +10 -10
  139. data/lib/yard/handlers/ruby/legacy/constant_handler.rb +29 -29
  140. data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +17 -17
  141. data/lib/yard/handlers/ruby/legacy/exception_handler.rb +13 -13
  142. data/lib/yard/handlers/ruby/legacy/extend_handler.rb +21 -21
  143. data/lib/yard/handlers/ruby/legacy/method_handler.rb +90 -90
  144. data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +39 -39
  145. data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +19 -19
  146. data/lib/yard/handlers/ruby/legacy/module_handler.rb +12 -12
  147. data/lib/yard/handlers/ruby/legacy/private_class_method_handler.rb +22 -22
  148. data/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +22 -22
  149. data/lib/yard/handlers/ruby/legacy/visibility_handler.rb +17 -17
  150. data/lib/yard/handlers/ruby/legacy/yield_handler.rb +29 -29
  151. data/lib/yard/handlers/ruby/method_condition_handler.rb +9 -9
  152. data/lib/yard/handlers/ruby/method_handler.rb +104 -118
  153. data/lib/yard/handlers/ruby/mixin_handler.rb +49 -37
  154. data/lib/yard/handlers/ruby/module_function_handler.rb +27 -27
  155. data/lib/yard/handlers/ruby/module_handler.rb +12 -12
  156. data/lib/yard/handlers/ruby/private_class_method_handler.rb +14 -14
  157. data/lib/yard/handlers/ruby/private_constant_handler.rb +43 -43
  158. data/lib/yard/handlers/ruby/public_class_method_handler.rb +14 -14
  159. data/lib/yard/handlers/ruby/struct_handler_methods.rb +143 -143
  160. data/lib/yard/handlers/ruby/visibility_handler.rb +22 -22
  161. data/lib/yard/handlers/ruby/yield_handler.rb +31 -31
  162. data/lib/yard/i18n/locale.rb +67 -67
  163. data/lib/yard/i18n/message.rb +57 -57
  164. data/lib/yard/i18n/messages.rb +56 -56
  165. data/lib/yard/i18n/po_parser.rb +61 -61
  166. data/lib/yard/i18n/pot_generator.rb +290 -290
  167. data/lib/yard/i18n/text.rb +173 -173
  168. data/lib/yard/logging.rb +205 -205
  169. data/lib/yard/options.rb +217 -217
  170. data/lib/yard/parser/base.rb +57 -57
  171. data/lib/yard/parser/c/c_parser.rb +235 -235
  172. data/lib/yard/parser/c/comment_parser.rb +134 -134
  173. data/lib/yard/parser/c/statement.rb +66 -64
  174. data/lib/yard/parser/ruby/ast_node.rb +551 -540
  175. data/lib/yard/parser/ruby/legacy/irb/slex.rb +276 -0
  176. data/lib/yard/parser/ruby/legacy/ruby_lex.rb +1345 -1354
  177. data/lib/yard/parser/ruby/legacy/ruby_parser.rb +32 -32
  178. data/lib/yard/parser/ruby/legacy/statement.rb +68 -66
  179. data/lib/yard/parser/ruby/legacy/statement_list.rb +394 -394
  180. data/lib/yard/parser/ruby/legacy/token_list.rb +74 -74
  181. data/lib/yard/parser/ruby/ruby_parser.rb +699 -687
  182. data/lib/yard/parser/ruby/token_resolver.rb +156 -156
  183. data/lib/yard/parser/source_parser.rb +526 -526
  184. data/lib/yard/rake/yardoc_task.rb +81 -81
  185. data/lib/yard/registry.rb +439 -439
  186. data/lib/yard/registry_resolver.rb +231 -189
  187. data/lib/yard/registry_store.rb +342 -337
  188. data/lib/yard/rubygems/backports.rb +10 -10
  189. data/lib/yard/rubygems/backports/LICENSE.txt +57 -57
  190. data/lib/yard/rubygems/backports/MIT.txt +20 -20
  191. data/lib/yard/rubygems/backports/gem.rb +10 -10
  192. data/lib/yard/rubygems/backports/source_index.rb +365 -365
  193. data/lib/yard/rubygems/doc_manager.rb +90 -90
  194. data/lib/yard/rubygems/hook.rb +197 -197
  195. data/lib/yard/rubygems/specification.rb +50 -50
  196. data/lib/yard/serializers/base.rb +83 -83
  197. data/lib/yard/serializers/file_system_serializer.rb +123 -123
  198. data/lib/yard/serializers/process_serializer.rb +24 -24
  199. data/lib/yard/serializers/stdout_serializer.rb +34 -34
  200. data/lib/yard/serializers/yardoc_serializer.rb +152 -152
  201. data/lib/yard/server.rb +13 -13
  202. data/lib/yard/server/adapter.rb +100 -100
  203. data/lib/yard/server/commands/base.rb +209 -209
  204. data/lib/yard/server/commands/display_file_command.rb +29 -29
  205. data/lib/yard/server/commands/display_object_command.rb +65 -65
  206. data/lib/yard/server/commands/frames_command.rb +16 -16
  207. data/lib/yard/server/commands/library_command.rb +187 -187
  208. data/lib/yard/server/commands/library_index_command.rb +28 -28
  209. data/lib/yard/server/commands/list_command.rb +25 -25
  210. data/lib/yard/server/commands/root_request_command.rb +15 -15
  211. data/lib/yard/server/commands/search_command.rb +79 -79
  212. data/lib/yard/server/commands/static_file_command.rb +23 -23
  213. data/lib/yard/server/commands/static_file_helpers.rb +61 -62
  214. data/lib/yard/server/doc_server_helper.rb +91 -91
  215. data/lib/yard/server/doc_server_serializer.rb +39 -39
  216. data/lib/yard/server/library_version.rb +277 -277
  217. data/lib/yard/server/rack_adapter.rb +89 -89
  218. data/lib/yard/server/router.rb +187 -187
  219. data/lib/yard/server/static_caching.rb +46 -46
  220. data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +127 -127
  221. data/lib/yard/server/templates/default/fulldoc/html/js/autocomplete.js +11 -11
  222. data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +37 -37
  223. data/lib/yard/server/templates/default/layout/html/script_setup.erb +7 -7
  224. data/lib/yard/server/templates/default/layout/html/setup.rb +8 -8
  225. data/lib/yard/server/templates/default/method_details/html/permalink.erb +4 -4
  226. data/lib/yard/server/templates/default/method_details/html/setup.rb +5 -5
  227. data/lib/yard/server/templates/doc_server/library_list/html/headers.erb +8 -8
  228. data/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +14 -14
  229. data/lib/yard/server/templates/doc_server/library_list/html/listing.erb +13 -13
  230. data/lib/yard/server/templates/doc_server/library_list/html/setup.rb +6 -6
  231. data/lib/yard/server/templates/doc_server/library_list/html/title.erb +2 -2
  232. data/lib/yard/server/templates/doc_server/processing/html/processing.erb +52 -52
  233. data/lib/yard/server/templates/doc_server/processing/html/setup.rb +4 -4
  234. data/lib/yard/server/templates/doc_server/search/html/search.erb +18 -18
  235. data/lib/yard/server/templates/doc_server/search/html/setup.rb +9 -9
  236. data/lib/yard/server/webrick_adapter.rb +45 -45
  237. data/lib/yard/tags/default_factory.rb +191 -191
  238. data/lib/yard/tags/default_tag.rb +13 -13
  239. data/lib/yard/tags/directives.rb +616 -616
  240. data/lib/yard/tags/library.rb +633 -633
  241. data/lib/yard/tags/option_tag.rb +13 -13
  242. data/lib/yard/tags/overload_tag.rb +71 -71
  243. data/lib/yard/tags/ref_tag.rb +8 -8
  244. data/lib/yard/tags/ref_tag_list.rb +28 -28
  245. data/lib/yard/tags/tag.rb +71 -71
  246. data/lib/yard/tags/tag_format_error.rb +7 -7
  247. data/lib/yard/tags/types_explainer.rb +162 -162
  248. data/lib/yard/templates/engine.rb +186 -186
  249. data/lib/yard/templates/erb_cache.rb +23 -23
  250. data/lib/yard/templates/helpers/base_helper.rb +215 -215
  251. data/lib/yard/templates/helpers/filter_helper.rb +27 -27
  252. data/lib/yard/templates/helpers/html_helper.rb +663 -646
  253. data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +78 -78
  254. data/lib/yard/templates/helpers/markup/rdoc_markdown.rb +23 -23
  255. data/lib/yard/templates/helpers/markup/rdoc_markup.rb +109 -109
  256. data/lib/yard/templates/helpers/markup_helper.rb +172 -172
  257. data/lib/yard/templates/helpers/method_helper.rb +75 -75
  258. data/lib/yard/templates/helpers/module_helper.rb +21 -21
  259. data/lib/yard/templates/helpers/text_helper.rb +112 -112
  260. data/lib/yard/templates/helpers/uml_helper.rb +47 -47
  261. data/lib/yard/templates/section.rb +105 -105
  262. data/lib/yard/templates/template.rb +418 -418
  263. data/lib/yard/templates/template_options.rb +92 -92
  264. data/lib/yard/verifier.rb +151 -151
  265. data/lib/yard/version.rb +6 -6
  266. data/po/ja.po +31108 -0
  267. data/samus.json +80 -0
  268. data/spec/cli/command_parser_spec.rb +43 -43
  269. data/spec/cli/command_spec.rb +36 -36
  270. data/spec/cli/config_spec.rb +148 -148
  271. data/spec/cli/diff_spec.rb +254 -254
  272. data/spec/cli/display_spec.rb +30 -30
  273. data/spec/cli/gems_spec.rb +81 -81
  274. data/spec/cli/graph_spec.rb +18 -18
  275. data/spec/cli/help_spec.rb +22 -22
  276. data/spec/cli/i18n_spec.rb +107 -107
  277. data/spec/cli/list_spec.rb +8 -8
  278. data/spec/cli/markup_types_spec.rb +22 -22
  279. data/spec/cli/server_spec.rb +324 -324
  280. data/spec/cli/stats_spec.rb +96 -96
  281. data/spec/cli/yard_on_yard_spec.rb +38 -38
  282. data/spec/cli/yardoc_spec.rb +896 -862
  283. data/spec/cli/yri_spec.rb +101 -101
  284. data/spec/code_objects/base_spec.rb +485 -470
  285. data/spec/code_objects/class_object_spec.rb +226 -226
  286. data/spec/code_objects/code_object_list_spec.rb +36 -36
  287. data/spec/code_objects/constants_spec.rb +116 -116
  288. data/spec/code_objects/extra_file_object_spec.rb +161 -160
  289. data/spec/code_objects/macro_object_spec.rb +150 -150
  290. data/spec/code_objects/method_object_spec.rb +184 -184
  291. data/spec/code_objects/module_object_spec.rb +142 -142
  292. data/spec/code_objects/namespace_object_spec.rb +171 -171
  293. data/spec/code_objects/proxy_spec.rb +147 -141
  294. data/spec/code_objects/spec_helper.rb +3 -3
  295. data/spec/config_spec.rb +171 -171
  296. data/spec/core_ext/array_spec.rb +13 -13
  297. data/spec/core_ext/file_spec.rb +72 -72
  298. data/spec/core_ext/hash_spec.rb +14 -14
  299. data/spec/core_ext/insertion_spec.rb +37 -37
  300. data/spec/core_ext/module_spec.rb +9 -15
  301. data/spec/core_ext/string_spec.rb +42 -42
  302. data/spec/core_ext/symbol_hash_spec.rb +89 -89
  303. data/spec/docstring_parser_spec.rb +280 -280
  304. data/spec/docstring_spec.rb +373 -373
  305. data/spec/handlers/alias_handler_spec.rb +82 -82
  306. data/spec/handlers/attribute_handler_spec.rb +96 -96
  307. data/spec/handlers/base_spec.rb +216 -216
  308. data/spec/handlers/c/alias_handler_spec.rb +34 -34
  309. data/spec/handlers/c/attribute_handler_spec.rb +41 -41
  310. data/spec/handlers/c/class_handler_spec.rb +78 -78
  311. data/spec/handlers/c/constant_handler_spec.rb +71 -71
  312. data/spec/handlers/c/init_handler_spec.rb +48 -48
  313. data/spec/handlers/c/method_handler_spec.rb +327 -325
  314. data/spec/handlers/c/mixin_handler_spec.rb +44 -44
  315. data/spec/handlers/c/module_handler_spec.rb +71 -71
  316. data/spec/handlers/c/override_comment_handler_spec.rb +47 -47
  317. data/spec/handlers/c/path_handler_spec.rb +36 -36
  318. data/spec/handlers/c/spec_helper.rb +23 -23
  319. data/spec/handlers/c/struct_handler_spec.rb +16 -16
  320. data/spec/handlers/class_condition_handler_spec.rb +87 -87
  321. data/spec/handlers/class_handler_spec.rb +247 -247
  322. data/spec/handlers/class_method_handler_shared_examples.rb +133 -133
  323. data/spec/handlers/class_variable_handler_spec.rb +12 -12
  324. data/spec/handlers/constant_handler_spec.rb +112 -112
  325. data/spec/handlers/decorator_handler_methods_spec.rb +393 -393
  326. data/spec/handlers/dsl_handler_spec.rb +226 -219
  327. data/spec/handlers/examples/alias_handler_001.rb.txt +45 -45
  328. data/spec/handlers/examples/attribute_handler_001.rb.txt +31 -31
  329. data/spec/handlers/examples/class_condition_handler_001.rb.txt +68 -68
  330. data/spec/handlers/examples/class_handler_001.rb.txt +120 -120
  331. data/spec/handlers/examples/class_variable_handler_001.rb.txt +9 -9
  332. data/spec/handlers/examples/constant_handler_001.rb.txt +35 -35
  333. data/spec/handlers/examples/dsl_handler_001.rb.txt +156 -154
  334. data/spec/handlers/examples/exception_handler_001.rb.txt +58 -58
  335. data/spec/handlers/examples/extend_handler_001.rb.txt +19 -16
  336. data/spec/handlers/examples/method_condition_handler_001.rb.txt +9 -9
  337. data/spec/handlers/examples/method_handler_001.rb.txt +128 -128
  338. data/spec/handlers/examples/mixin_handler_001.rb.txt +40 -37
  339. data/spec/handlers/examples/module_handler_001.rb.txt +29 -29
  340. data/spec/handlers/examples/private_constant_handler_001.rb.txt +8 -8
  341. data/spec/handlers/examples/process_handler_001.rb.txt +11 -11
  342. data/spec/handlers/examples/visibility_handler_001.rb.txt +35 -35
  343. data/spec/handlers/examples/yield_handler_001.rb.txt +54 -54
  344. data/spec/handlers/exception_handler_spec.rb +49 -49
  345. data/spec/handlers/extend_handler_spec.rb +28 -24
  346. data/spec/handlers/legacy_base_spec.rb +128 -128
  347. data/spec/handlers/method_condition_handler_spec.rb +15 -15
  348. data/spec/handlers/method_handler_spec.rb +214 -190
  349. data/spec/handlers/mixin_handler_spec.rb +60 -56
  350. data/spec/handlers/module_function_handler_spec.rb +106 -106
  351. data/spec/handlers/module_handler_spec.rb +35 -35
  352. data/spec/handlers/private_class_method_handler_spec.rb +11 -11
  353. data/spec/handlers/private_constant_handler_spec.rb +25 -25
  354. data/spec/handlers/processor_spec.rb +35 -35
  355. data/spec/handlers/public_class_method_handler_spec.rb +11 -11
  356. data/spec/handlers/ruby/base_spec.rb +95 -95
  357. data/spec/handlers/ruby/legacy/base_spec.rb +84 -84
  358. data/spec/handlers/spec_helper.rb +33 -33
  359. data/spec/handlers/visibility_handler_spec.rb +44 -44
  360. data/spec/handlers/yield_handler_spec.rb +52 -52
  361. data/spec/i18n/locale_spec.rb +81 -81
  362. data/spec/i18n/message_spec.rb +52 -52
  363. data/spec/i18n/messages_spec.rb +67 -67
  364. data/spec/i18n/pot_generator_spec.rb +295 -295
  365. data/spec/i18n/text_spec.rb +184 -184
  366. data/spec/logging_spec.rb +44 -44
  367. data/spec/options_spec.rb +171 -171
  368. data/spec/parser/base_spec.rb +24 -24
  369. data/spec/parser/c_parser_spec.rb +236 -236
  370. data/spec/parser/examples/array.c.txt +6267 -6267
  371. data/spec/parser/examples/example1.rb.txt +7 -7
  372. data/spec/parser/examples/extrafile.c.txt +8 -8
  373. data/spec/parser/examples/file.c.txt +28 -28
  374. data/spec/parser/examples/multifile.c.txt +22 -22
  375. data/spec/parser/examples/namespace.cpp.txt +68 -68
  376. data/spec/parser/examples/override.c.txt +424 -424
  377. data/spec/parser/examples/parse_in_order_001.rb.txt +2 -2
  378. data/spec/parser/examples/parse_in_order_002.rb.txt +1 -1
  379. data/spec/parser/examples/tag_handler_001.rb.txt +7 -7
  380. data/spec/parser/ruby/ast_node_spec.rb +33 -33
  381. data/spec/parser/ruby/legacy/statement_list_spec.rb +299 -299
  382. data/spec/parser/ruby/legacy/token_list_spec.rb +79 -79
  383. data/spec/parser/ruby/ruby_parser_spec.rb +508 -508
  384. data/spec/parser/ruby/token_resolver_spec.rb +165 -165
  385. data/spec/parser/source_parser_spec.rb +727 -727
  386. data/spec/parser/tag_parsing_spec.rb +17 -17
  387. data/spec/rake/yardoc_task_spec.rb +118 -118
  388. data/spec/registry_spec.rb +463 -463
  389. data/spec/registry_store_spec.rb +327 -316
  390. data/spec/rubygems/doc_manager_spec.rb +112 -112
  391. data/spec/serializers/data/serialized_yardoc/checksums +1 -1
  392. data/spec/serializers/file_system_serializer_spec.rb +145 -145
  393. data/spec/serializers/spec_helper.rb +2 -2
  394. data/spec/serializers/yardoc_serializer_spec.rb +78 -78
  395. data/spec/server/adapter_spec.rb +39 -39
  396. data/spec/server/commands/base_spec.rb +91 -91
  397. data/spec/server/commands/library_command_spec.rb +39 -39
  398. data/spec/server/doc_server_helper_spec.rb +72 -72
  399. data/spec/server/doc_server_serializer_spec.rb +60 -60
  400. data/spec/server/rack_adapter_spec.rb +21 -21
  401. data/spec/server/router_spec.rb +123 -123
  402. data/spec/server/spec_helper.rb +22 -22
  403. data/spec/server/static_caching_spec.rb +47 -47
  404. data/spec/server/webrick_servlet_spec.rb +20 -20
  405. data/spec/server_spec.rb +19 -19
  406. data/spec/spec_helper.rb +212 -212
  407. data/spec/tags/default_factory_spec.rb +168 -168
  408. data/spec/tags/default_tag_spec.rb +11 -11
  409. data/spec/tags/directives_spec.rb +463 -463
  410. data/spec/tags/library_spec.rb +48 -48
  411. data/spec/tags/overload_tag_spec.rb +53 -53
  412. data/spec/tags/ref_tag_list_spec.rb +53 -53
  413. data/spec/tags/types_explainer_spec.rb +203 -203
  414. data/spec/templates/class_spec.rb +45 -45
  415. data/spec/templates/constant_spec.rb +41 -41
  416. data/spec/templates/engine_spec.rb +131 -131
  417. data/spec/templates/examples/class001.html +308 -308
  418. data/spec/templates/examples/class001.txt +36 -36
  419. data/spec/templates/examples/class002.html +39 -39
  420. data/spec/templates/examples/constant001.txt +24 -24
  421. data/spec/templates/examples/constant002.txt +6 -6
  422. data/spec/templates/examples/constant003.txt +10 -10
  423. data/spec/templates/examples/method001.html +137 -137
  424. data/spec/templates/examples/method001.txt +35 -35
  425. data/spec/templates/examples/method002.html +91 -91
  426. data/spec/templates/examples/method002.txt +20 -20
  427. data/spec/templates/examples/method003.html +165 -165
  428. data/spec/templates/examples/method003.txt +45 -45
  429. data/spec/templates/examples/method004.html +48 -48
  430. data/spec/templates/examples/method004.txt +10 -10
  431. data/spec/templates/examples/method005.html +105 -105
  432. data/spec/templates/examples/method005.txt +33 -33
  433. data/spec/templates/examples/method006.html +107 -107
  434. data/spec/templates/examples/method006.txt +20 -20
  435. data/spec/templates/examples/module001.dot +33 -33
  436. data/spec/templates/examples/module001.html +833 -833
  437. data/spec/templates/examples/module001.txt +33 -33
  438. data/spec/templates/examples/module002.html +341 -341
  439. data/spec/templates/examples/module003.html +202 -202
  440. data/spec/templates/examples/module004.html +394 -394
  441. data/spec/templates/examples/module005.html +81 -81
  442. data/spec/templates/examples/tag001.txt +82 -82
  443. data/spec/templates/helpers/base_helper_spec.rb +171 -171
  444. data/spec/templates/helpers/html_helper_spec.rb +687 -668
  445. data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +65 -65
  446. data/spec/templates/helpers/markup/rdoc_markup_spec.rb +84 -84
  447. data/spec/templates/helpers/markup_helper_spec.rb +136 -136
  448. data/spec/templates/helpers/method_helper_spec.rb +107 -107
  449. data/spec/templates/helpers/module_helper_spec.rb +35 -35
  450. data/spec/templates/helpers/shared_signature_examples.rb +126 -126
  451. data/spec/templates/helpers/text_helper_spec.rb +65 -65
  452. data/spec/templates/markup_processor_integrations/asciidoctor_spec.rb +60 -0
  453. data/spec/templates/markup_processor_integrations/integration_spec_helper.rb +46 -0
  454. data/spec/templates/markup_processor_integrations/rdoc_markdown_spec.rb +59 -0
  455. data/spec/templates/markup_processor_integrations/rdoc_spec.rb +39 -0
  456. data/spec/templates/markup_processor_integrations/redcarpet_spec.rb +59 -0
  457. data/spec/templates/markup_processor_integrations/redcloth_spec.rb +48 -0
  458. data/spec/templates/method_spec.rb +118 -118
  459. data/spec/templates/module_spec.rb +203 -203
  460. data/spec/templates/onefile_spec.rb +66 -66
  461. data/spec/templates/section_spec.rb +144 -144
  462. data/spec/templates/spec_helper.rb +76 -76
  463. data/spec/templates/tag_spec.rb +52 -52
  464. data/spec/templates/template_spec.rb +410 -410
  465. data/spec/verifier_spec.rb +106 -106
  466. data/templates/default/class/dot/setup.rb +7 -7
  467. data/templates/default/class/dot/superklass.erb +2 -2
  468. data/templates/default/class/html/constructor_details.erb +8 -8
  469. data/templates/default/class/html/setup.rb +2 -2
  470. data/templates/default/class/html/subclasses.erb +4 -4
  471. data/templates/default/class/setup.rb +36 -36
  472. data/templates/default/class/text/setup.rb +12 -12
  473. data/templates/default/class/text/subclasses.erb +5 -5
  474. data/templates/default/constant/text/header.erb +11 -11
  475. data/templates/default/constant/text/setup.rb +4 -4
  476. data/templates/default/docstring/html/abstract.erb +4 -4
  477. data/templates/default/docstring/html/deprecated.erb +1 -1
  478. data/templates/default/docstring/html/index.erb +5 -5
  479. data/templates/default/docstring/html/note.erb +6 -6
  480. data/templates/default/docstring/html/private.erb +4 -4
  481. data/templates/default/docstring/html/text.erb +1 -1
  482. data/templates/default/docstring/html/todo.erb +6 -6
  483. data/templates/default/docstring/setup.rb +52 -52
  484. data/templates/default/docstring/text/abstract.erb +2 -2
  485. data/templates/default/docstring/text/deprecated.erb +2 -2
  486. data/templates/default/docstring/text/index.erb +2 -2
  487. data/templates/default/docstring/text/note.erb +3 -3
  488. data/templates/default/docstring/text/private.erb +2 -2
  489. data/templates/default/docstring/text/text.erb +1 -1
  490. data/templates/default/docstring/text/todo.erb +3 -3
  491. data/templates/default/fulldoc/html/css/full_list.css +58 -58
  492. data/templates/default/fulldoc/html/css/style.css +496 -496
  493. data/templates/default/fulldoc/html/frames.erb +17 -17
  494. data/templates/default/fulldoc/html/full_list.erb +37 -37
  495. data/templates/default/fulldoc/html/full_list_class.erb +2 -2
  496. data/templates/default/fulldoc/html/full_list_file.erb +7 -7
  497. data/templates/default/fulldoc/html/full_list_method.erb +10 -10
  498. data/templates/default/fulldoc/html/js/app.js +314 -292
  499. data/templates/default/fulldoc/html/js/full_list.js +216 -216
  500. data/templates/default/fulldoc/html/js/jquery.js +3 -3
  501. data/templates/default/fulldoc/html/setup.rb +241 -241
  502. data/templates/default/layout/dot/header.erb +5 -5
  503. data/templates/default/layout/dot/setup.rb +15 -15
  504. data/templates/default/layout/html/breadcrumb.erb +11 -11
  505. data/templates/default/layout/html/files.erb +11 -11
  506. data/templates/default/layout/html/footer.erb +5 -5
  507. data/templates/default/layout/html/headers.erb +15 -15
  508. data/templates/default/layout/html/index.erb +2 -2
  509. data/templates/default/layout/html/layout.erb +23 -23
  510. data/templates/default/layout/html/listing.erb +4 -4
  511. data/templates/default/layout/html/objects.erb +32 -32
  512. data/templates/default/layout/html/script_setup.erb +4 -4
  513. data/templates/default/layout/html/search.erb +12 -12
  514. data/templates/default/layout/html/setup.rb +89 -89
  515. data/templates/default/method/html/header.erb +16 -16
  516. data/templates/default/method/setup.rb +4 -4
  517. data/templates/default/method_details/html/header.erb +2 -2
  518. data/templates/default/method_details/html/method_signature.erb +24 -24
  519. data/templates/default/method_details/html/source.erb +9 -9
  520. data/templates/default/method_details/setup.rb +11 -11
  521. data/templates/default/method_details/text/header.erb +10 -10
  522. data/templates/default/method_details/text/method_signature.erb +12 -12
  523. data/templates/default/method_details/text/setup.rb +11 -11
  524. data/templates/default/module/dot/child.erb +1 -1
  525. data/templates/default/module/dot/dependencies.erb +2 -2
  526. data/templates/default/module/dot/header.erb +6 -6
  527. data/templates/default/module/dot/info.erb +13 -13
  528. data/templates/default/module/dot/setup.rb +15 -15
  529. data/templates/default/module/html/attribute_details.erb +10 -10
  530. data/templates/default/module/html/attribute_summary.erb +8 -8
  531. data/templates/default/module/html/box_info.erb +43 -43
  532. data/templates/default/module/html/children.erb +8 -8
  533. data/templates/default/module/html/constant_summary.erb +17 -17
  534. data/templates/default/module/html/defines.erb +2 -2
  535. data/templates/default/module/html/header.erb +5 -5
  536. data/templates/default/module/html/inherited_attributes.erb +14 -14
  537. data/templates/default/module/html/inherited_constants.erb +8 -8
  538. data/templates/default/module/html/inherited_methods.erb +18 -18
  539. data/templates/default/module/html/item_summary.erb +40 -40
  540. data/templates/default/module/html/method_details_list.erb +9 -9
  541. data/templates/default/module/html/method_summary.erb +13 -13
  542. data/templates/default/module/html/methodmissing.erb +12 -12
  543. data/templates/default/module/setup.rb +167 -167
  544. data/templates/default/module/text/children.erb +9 -9
  545. data/templates/default/module/text/class_meths_list.erb +7 -7
  546. data/templates/default/module/text/extends.erb +7 -7
  547. data/templates/default/module/text/header.erb +7 -7
  548. data/templates/default/module/text/includes.erb +7 -7
  549. data/templates/default/module/text/instance_meths_list.erb +7 -7
  550. data/templates/default/module/text/setup.rb +13 -13
  551. data/templates/default/onefile/html/files.erb +4 -4
  552. data/templates/default/onefile/html/headers.erb +6 -6
  553. data/templates/default/onefile/html/layout.erb +17 -17
  554. data/templates/default/onefile/html/readme.erb +2 -2
  555. data/templates/default/onefile/html/setup.rb +62 -62
  556. data/templates/default/root/dot/child.erb +2 -2
  557. data/templates/default/root/dot/setup.rb +6 -6
  558. data/templates/default/root/html/setup.rb +2 -2
  559. data/templates/default/tags/html/example.erb +10 -10
  560. data/templates/default/tags/html/index.erb +2 -2
  561. data/templates/default/tags/html/option.erb +24 -24
  562. data/templates/default/tags/html/overload.erb +13 -13
  563. data/templates/default/tags/html/see.erb +7 -7
  564. data/templates/default/tags/html/tag.erb +20 -20
  565. data/templates/default/tags/setup.rb +57 -57
  566. data/templates/default/tags/text/example.erb +12 -12
  567. data/templates/default/tags/text/index.erb +1 -1
  568. data/templates/default/tags/text/option.erb +20 -20
  569. data/templates/default/tags/text/overload.erb +19 -19
  570. data/templates/default/tags/text/see.erb +11 -11
  571. data/templates/default/tags/text/tag.erb +13 -13
  572. data/templates/guide/class/html/setup.rb +2 -2
  573. data/templates/guide/docstring/html/setup.rb +2 -2
  574. data/templates/guide/fulldoc/html/css/style.css +108 -108
  575. data/templates/guide/fulldoc/html/js/app.js +33 -33
  576. data/templates/guide/fulldoc/html/setup.rb +74 -74
  577. data/templates/guide/layout/html/layout.erb +81 -81
  578. data/templates/guide/layout/html/setup.rb +25 -25
  579. data/templates/guide/method/html/header.erb +17 -17
  580. data/templates/guide/method/html/setup.rb +22 -22
  581. data/templates/guide/module/html/header.erb +6 -6
  582. data/templates/guide/module/html/method_list.erb +4 -4
  583. data/templates/guide/module/html/setup.rb +27 -27
  584. data/templates/guide/onefile/html/files.erb +4 -4
  585. data/templates/guide/onefile/html/setup.rb +6 -6
  586. data/templates/guide/onefile/html/toc.erb +3 -3
  587. data/templates/guide/tags/html/setup.rb +9 -9
  588. data/yard.gemspec +24 -43
  589. metadata +28 -21
  590. data/spec/examples.txt +0 -1878
@@ -1,50 +1,50 @@
1
- # frozen_string_literal: true
2
- require 'rubygems/specification'
3
-
4
- class Gem::Specification
5
- # @since 0.5.3
6
- def has_yardoc=(value)
7
- @has_rdoc = value ? 'yard' : false
8
- end
9
-
10
- def has_yardoc
11
- @has_rdoc == 'yard'
12
- end
13
-
14
- undef has_rdoc?
15
- def has_rdoc?
16
- (@has_rdoc ||= true) && @has_rdoc != 'yard'
17
- end
18
-
19
- alias has_yardoc? has_yardoc
20
-
21
- # has_rdoc should not be ignored!
22
- if respond_to?(:overwrite_accessor)
23
- overwrite_accessor(:has_rdoc) { @has_rdoc ||= true }
24
- overwrite_accessor(:has_rdoc=) {|v| @has_rdoc = v }
25
- else
26
- attr_accessor :has_rdoc
27
- end
28
-
29
- if defined?(Gem::VERSION) && Gem::VERSION >= '1.7.'
30
- def _dump_with_rdoc(limit)
31
- dmp = _dump_without_rdoc(limit)
32
- dmp[15] = @has_rdoc if dmp[15] == true
33
- dmp
34
- end
35
- alias _dump_without_rdoc _dump
36
- alias _dump _dump_with_rdoc
37
-
38
- if class_variable_defined?(:@@default_value)
39
- if @@default_value.frozen?
40
- t = @@default_value.dup
41
- t[:has_rdoc] = true
42
- @@default_value = t.freeze
43
- else
44
- @@default_value[:has_rdoc] = true
45
- end
46
- end
47
- @@attributes << 'has_rdoc' if class_variable_defined?(:@@attributes)
48
- @@nil_attributes << 'has_rdoc' if class_variable_defined?(:@@nil_attributes)
49
- end
50
- end
1
+ # frozen_string_literal: true
2
+ require 'rubygems/specification'
3
+
4
+ class Gem::Specification
5
+ # @since 0.5.3
6
+ def has_yardoc=(value)
7
+ @has_rdoc = value ? 'yard' : false
8
+ end
9
+
10
+ def has_yardoc
11
+ @has_rdoc == 'yard'
12
+ end
13
+
14
+ undef has_rdoc?
15
+ def has_rdoc?
16
+ (@has_rdoc ||= true) && @has_rdoc != 'yard'
17
+ end
18
+
19
+ alias has_yardoc? has_yardoc
20
+
21
+ # has_rdoc should not be ignored!
22
+ if respond_to?(:overwrite_accessor)
23
+ overwrite_accessor(:has_rdoc) { @has_rdoc ||= true }
24
+ overwrite_accessor(:has_rdoc=) {|v| @has_rdoc = v }
25
+ else
26
+ attr_accessor :has_rdoc
27
+ end
28
+
29
+ if defined?(Gem::VERSION) && Gem::VERSION >= '1.7.'
30
+ def _dump_with_rdoc(limit)
31
+ dmp = _dump_without_rdoc(limit)
32
+ dmp[15] = @has_rdoc if dmp[15] == true
33
+ dmp
34
+ end
35
+ alias _dump_without_rdoc _dump
36
+ alias _dump _dump_with_rdoc
37
+
38
+ if class_variable_defined?(:@@default_value)
39
+ if @@default_value.frozen?
40
+ t = @@default_value.dup
41
+ t[:has_rdoc] = true
42
+ @@default_value = t.freeze
43
+ else
44
+ @@default_value[:has_rdoc] = true
45
+ end
46
+ end
47
+ @@attributes << 'has_rdoc' if class_variable_defined?(:@@attributes)
48
+ @@nil_attributes << 'has_rdoc' if class_variable_defined?(:@@nil_attributes)
49
+ end
50
+ end
@@ -1,83 +1,83 @@
1
- # frozen_string_literal: true
2
- module YARD
3
- module Serializers
4
- # The abstract base serializer. Serializers allow templates to be
5
- # rendered to various endpoints. For instance, a {FileSystemSerializer}
6
- # would allow template contents to be written to the filesystem
7
- #
8
- # To implement a custom serializer, override the following methods:
9
- # * {#serialize}
10
- # * {#serialized_path}
11
- #
12
- # Optionally, a serializer can implement before and after filters:
13
- # * {#before_serialize}
14
- # * {#after_serialize}
15
- #
16
- # @abstract Override this class to implement a custom serializer.
17
- class Base
18
- # All serializer options are saved so they can be passed to other serializers.
19
- #
20
- # @return [SymbolHash] the serializer options
21
- attr_reader :options
22
-
23
- # @group Creating a New Serializer
24
-
25
- # Creates a new serializer with options
26
- #
27
- # @param [Hash] opts the options to assign to {#options}
28
- def initialize(opts = {})
29
- @options = SymbolHash.new(false).update(opts)
30
- end
31
-
32
- # @group Serializing an Object
33
-
34
- # Serializes an object.
35
- #
36
- # @abstract This method should implement the logic that serializes
37
- # +data+ to the respective endpoint. This method should also call
38
- # the before and after callbacks {#before_serialize} and {#after_serialize}
39
- # @param [CodeObjects::Base, String] object the object to serialize the
40
- # data for. The object can also be a string (for non-object serialization)
41
- # @param [String] data the contents that should be serialized
42
- def serialize(object, data) end
43
-
44
- # The serialized path of an object
45
- #
46
- # @abstract This method should return the path of the object on the
47
- # endpoint. For instance, for a file serializer, this should return
48
- # the filename that represents the object on disk.
49
- # @param [CodeObjects::Base] object the object to return a path for
50
- # @return [String] the serialized path of an object
51
- def serialized_path(object) end
52
-
53
- # Returns whether an object has been serialized
54
- #
55
- # @abstract This method should return whether the endpoint already exists.
56
- # For instance, a file system serializer would check if the file exists
57
- # on disk. You will most likely use +#basepath+ and {#serialized_path} to
58
- # get the endpoint's location.
59
- # @param [CodeObjects::Base] object the object to check existence of
60
- # @return [Boolean] whether the endpoint exists.
61
- # @since 0.6.0
62
- def exists?(object) # rubocop:disable Lint/UnusedMethodArgument
63
- false
64
- end
65
-
66
- # @group Callbacks
67
-
68
- # Called before serialization.
69
- #
70
- # @abstract Should run code before serialization. Should return false
71
- # if serialization should not occur.
72
- # @return [Boolean] whether or not serialization should occur
73
- def before_serialize; end
74
-
75
- # Called after serialization.
76
- #
77
- # @abstract Should run code after serialization.
78
- # @param [String] data the data that was serialized.
79
- # @return [void]
80
- def after_serialize(data); end
81
- end
82
- end
83
- end
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module Serializers
4
+ # The abstract base serializer. Serializers allow templates to be
5
+ # rendered to various endpoints. For instance, a {FileSystemSerializer}
6
+ # would allow template contents to be written to the filesystem
7
+ #
8
+ # To implement a custom serializer, override the following methods:
9
+ # * {#serialize}
10
+ # * {#serialized_path}
11
+ #
12
+ # Optionally, a serializer can implement before and after filters:
13
+ # * {#before_serialize}
14
+ # * {#after_serialize}
15
+ #
16
+ # @abstract Override this class to implement a custom serializer.
17
+ class Base
18
+ # All serializer options are saved so they can be passed to other serializers.
19
+ #
20
+ # @return [SymbolHash] the serializer options
21
+ attr_reader :options
22
+
23
+ # @group Creating a New Serializer
24
+
25
+ # Creates a new serializer with options
26
+ #
27
+ # @param [Hash] opts the options to assign to {#options}
28
+ def initialize(opts = {})
29
+ @options = SymbolHash.new(false).update(opts)
30
+ end
31
+
32
+ # @group Serializing an Object
33
+
34
+ # Serializes an object.
35
+ #
36
+ # @abstract This method should implement the logic that serializes
37
+ # +data+ to the respective endpoint. This method should also call
38
+ # the before and after callbacks {#before_serialize} and {#after_serialize}
39
+ # @param [CodeObjects::Base, String] object the object to serialize the
40
+ # data for. The object can also be a string (for non-object serialization)
41
+ # @param [String] data the contents that should be serialized
42
+ def serialize(object, data) end
43
+
44
+ # The serialized path of an object
45
+ #
46
+ # @abstract This method should return the path of the object on the
47
+ # endpoint. For instance, for a file serializer, this should return
48
+ # the filename that represents the object on disk.
49
+ # @param [CodeObjects::Base] object the object to return a path for
50
+ # @return [String] the serialized path of an object
51
+ def serialized_path(object) end
52
+
53
+ # Returns whether an object has been serialized
54
+ #
55
+ # @abstract This method should return whether the endpoint already exists.
56
+ # For instance, a file system serializer would check if the file exists
57
+ # on disk. You will most likely use +#basepath+ and {#serialized_path} to
58
+ # get the endpoint's location.
59
+ # @param [CodeObjects::Base] object the object to check existence of
60
+ # @return [Boolean] whether the endpoint exists.
61
+ # @since 0.6.0
62
+ def exists?(object) # rubocop:disable Lint/UnusedMethodArgument
63
+ false
64
+ end
65
+
66
+ # @group Callbacks
67
+
68
+ # Called before serialization.
69
+ #
70
+ # @abstract Should run code before serialization. Should return false
71
+ # if serialization should not occur.
72
+ # @return [Boolean] whether or not serialization should occur
73
+ def before_serialize; end
74
+
75
+ # Called after serialization.
76
+ #
77
+ # @abstract Should run code after serialization.
78
+ # @param [String] data the data that was serialized.
79
+ # @return [void]
80
+ def after_serialize(data); end
81
+ end
82
+ end
83
+ end
@@ -1,123 +1,123 @@
1
- # frozen_string_literal: true
2
- module YARD
3
- module Serializers
4
- # Implements a serializer that reads from and writes to the filesystem.
5
- class FileSystemSerializer < Base
6
- # The base path to write data to.
7
- # @return [String] a base path
8
- attr_reader :basepath
9
-
10
- def basepath=(value)
11
- @basepath = options[:basepath] = value
12
- end
13
-
14
- # The extension of the filename (defaults to +html+)
15
- #
16
- # @return [String] the extension of the file. Empty string for no extension.
17
- attr_reader :extension
18
-
19
- def extension=(value)
20
- @extension = options[:extension] = value
21
- end
22
-
23
- # Creates a new FileSystemSerializer with options
24
- #
25
- # @option opts [String] :basepath ('doc') the base path to write data to
26
- # @option opts [String] :extension ('html') the extension of the serialized
27
- # path filename. If this is set to the empty string, no extension is used.
28
- def initialize(opts = {})
29
- super
30
- @name_map = nil
31
- @basepath = (options[:basepath] || 'doc').to_s
32
- @extension = (options.key?(:extension) ? options[:extension] : 'html').to_s
33
- end
34
-
35
- # Serializes object with data to its serialized path (prefixed by the +#basepath+).
36
- #
37
- # @return [String] the written data (for chaining)
38
- def serialize(object, data)
39
- path = File.join(basepath, serialized_path(object))
40
- log.debug "Serializing to #{path}"
41
- File.open!(path, "wb") {|f| f.write data }
42
- end
43
-
44
- # Implements the serialized path of a code object.
45
- #
46
- # @param [CodeObjects::Base, CodeObjects::ExtraFileObject, String] object
47
- # the object to get a path for. The path of a string is the string itself.
48
- # @return [String] if object is a String, returns
49
- # object, otherwise the path on disk (without the basepath).
50
- def serialized_path(object)
51
- return object if object.is_a?(String)
52
-
53
- if object.is_a?(CodeObjects::ExtraFileObject)
54
- fspath = ['file.' + object.name + (extension.empty? ? '' : ".#{extension}")]
55
- else
56
- objname = object != YARD::Registry.root ? mapped_name(object) : "top-level-namespace"
57
- objname += '_' + object.scope.to_s[0, 1] if object.is_a?(CodeObjects::MethodObject)
58
- fspath = [objname + (extension.empty? ? '' : ".#{extension}")]
59
- if object.namespace && object.namespace.path != ""
60
- fspath.unshift(*object.namespace.path.split(CodeObjects::NSEP))
61
- end
62
- end
63
-
64
- File.join(encode_path_components(*fspath))
65
- end
66
-
67
- # Checks the disk for an object and returns whether it was serialized.
68
- #
69
- # @param [CodeObjects::Base] object the object to check
70
- # @return [Boolean] whether an object has been serialized to disk
71
- def exists?(object)
72
- File.exist?(File.join(basepath, serialized_path(object)))
73
- end
74
-
75
- private
76
-
77
- # Builds a filename mapping from object paths to filesystem path names.
78
- # Needed to handle case sensitive YARD objects mapped into a case
79
- # insensitive filesystem. Uses with {#mapped_name} to determine the
80
- # mapping name for a given object.
81
- #
82
- # @note In order to use filesystem name mapping, you must initialize
83
- # the serializer object after preparing the {YARD::Registry}.
84
- def build_filename_map
85
- @name_map = {}
86
- YARD::Registry.all.each do |object|
87
- lpath = nil
88
- if object.parent && object.parent.type != :root
89
- lpath = object.parent.path + "::" + object.name.to_s.downcase
90
- else
91
- lpath = object.path.downcase
92
- end
93
-
94
- @name_map[lpath] ||= {}
95
- size = @name_map[lpath].size
96
- name = "#{object.name}#{size > 0 ? "_" * size : ""}"
97
- @name_map[lpath][object.name] = name
98
- end
99
- end
100
-
101
- # @return [String] the filesystem mapped name of a given object.
102
- def mapped_name(object)
103
- build_filename_map unless @name_map
104
- map = @name_map[object.path.downcase]
105
- map && map[object.name] ? map[object.name] : object.name.to_s
106
- end
107
-
108
- # Remove special chars from filenames.
109
- # Windows disallows \ / : * ? " < > | but we will just remove any
110
- # non alphanumeric (plus period, underscore and dash).
111
- def encode_path_components(*components)
112
- components.map! do |p|
113
- p.gsub(/[^\w\.-]/) do |x|
114
- encoded = String.new('_')
115
-
116
- x.each_byte {|b| encoded << ("%X" % b) }
117
- encoded
118
- end
119
- end
120
- end
121
- end
122
- end
123
- end
1
+ # frozen_string_literal: true
2
+ module YARD
3
+ module Serializers
4
+ # Implements a serializer that reads from and writes to the filesystem.
5
+ class FileSystemSerializer < Base
6
+ # The base path to write data to.
7
+ # @return [String] a base path
8
+ attr_reader :basepath
9
+
10
+ def basepath=(value)
11
+ @basepath = options[:basepath] = value
12
+ end
13
+
14
+ # The extension of the filename (defaults to +html+)
15
+ #
16
+ # @return [String] the extension of the file. Empty string for no extension.
17
+ attr_reader :extension
18
+
19
+ def extension=(value)
20
+ @extension = options[:extension] = value
21
+ end
22
+
23
+ # Creates a new FileSystemSerializer with options
24
+ #
25
+ # @option opts [String] :basepath ('doc') the base path to write data to
26
+ # @option opts [String] :extension ('html') the extension of the serialized
27
+ # path filename. If this is set to the empty string, no extension is used.
28
+ def initialize(opts = {})
29
+ super
30
+ @name_map = nil
31
+ @basepath = (options[:basepath] || 'doc').to_s
32
+ @extension = (options.key?(:extension) ? options[:extension] : 'html').to_s
33
+ end
34
+
35
+ # Serializes object with data to its serialized path (prefixed by the +#basepath+).
36
+ #
37
+ # @return [String] the written data (for chaining)
38
+ def serialize(object, data)
39
+ path = File.join(basepath, serialized_path(object))
40
+ log.debug "Serializing to #{path}"
41
+ File.open!(path, "wb") {|f| f.write data }
42
+ end
43
+
44
+ # Implements the serialized path of a code object.
45
+ #
46
+ # @param [CodeObjects::Base, CodeObjects::ExtraFileObject, String] object
47
+ # the object to get a path for. The path of a string is the string itself.
48
+ # @return [String] if object is a String, returns
49
+ # object, otherwise the path on disk (without the basepath).
50
+ def serialized_path(object)
51
+ return object if object.is_a?(String)
52
+
53
+ if object.is_a?(CodeObjects::ExtraFileObject)
54
+ fspath = ['file.' + object.name + (extension.empty? ? '' : ".#{extension}")]
55
+ else
56
+ objname = object != YARD::Registry.root ? mapped_name(object) : "top-level-namespace"
57
+ objname += '_' + object.scope.to_s[0, 1] if object.is_a?(CodeObjects::MethodObject)
58
+ fspath = [objname + (extension.empty? ? '' : ".#{extension}")]
59
+ if object.namespace && object.namespace.path != ""
60
+ fspath.unshift(*object.namespace.path.split(CodeObjects::NSEP))
61
+ end
62
+ end
63
+
64
+ File.join(encode_path_components(*fspath))
65
+ end
66
+
67
+ # Checks the disk for an object and returns whether it was serialized.
68
+ #
69
+ # @param [CodeObjects::Base] object the object to check
70
+ # @return [Boolean] whether an object has been serialized to disk
71
+ def exists?(object)
72
+ File.exist?(File.join(basepath, serialized_path(object)))
73
+ end
74
+
75
+ private
76
+
77
+ # Builds a filename mapping from object paths to filesystem path names.
78
+ # Needed to handle case sensitive YARD objects mapped into a case
79
+ # insensitive filesystem. Uses with {#mapped_name} to determine the
80
+ # mapping name for a given object.
81
+ #
82
+ # @note In order to use filesystem name mapping, you must initialize
83
+ # the serializer object after preparing the {YARD::Registry}.
84
+ def build_filename_map
85
+ @name_map = {}
86
+ YARD::Registry.all.each do |object|
87
+ lpath = nil
88
+ if object.parent && object.parent.type != :root
89
+ lpath = object.parent.path + "::" + object.name.to_s.downcase
90
+ else
91
+ lpath = object.path.downcase
92
+ end
93
+
94
+ @name_map[lpath] ||= {}
95
+ size = @name_map[lpath].size
96
+ name = "#{object.name}#{size > 0 ? "_" * size : ""}"
97
+ @name_map[lpath][object.name] = name
98
+ end
99
+ end
100
+
101
+ # @return [String] the filesystem mapped name of a given object.
102
+ def mapped_name(object)
103
+ build_filename_map unless @name_map
104
+ map = @name_map[object.path.downcase]
105
+ map && map[object.name] ? map[object.name] : object.name.to_s
106
+ end
107
+
108
+ # Remove special chars from filenames.
109
+ # Windows disallows \ / : * ? " < > | but we will just remove any
110
+ # non alphanumeric (plus period, underscore and dash).
111
+ def encode_path_components(*components)
112
+ components.map! do |p|
113
+ p.gsub(/[^\w\.-]/) do |x|
114
+ encoded = String.new('_')
115
+
116
+ x.each_byte {|b| encoded << ("%X" % b) }
117
+ encoded
118
+ end
119
+ end
120
+ end
121
+ end
122
+ end
123
+ end