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,45 +1,45 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/spec_helper'
3
-
4
- RSpec.describe YARD::Templates::Engine.template(:default, :docstring) do
5
- before do
6
- Registry.clear
7
- YARD.parse_string <<-'eof'
8
- private
9
- # Comments
10
- # @abstract override this class
11
- # @author Test
12
- # @version 1.0
13
- # @see A
14
- # @see http://example.com Example
15
- class A < B
16
- # HI
17
- def method_missing(*args) end
18
- # @deprecated
19
- def a; end
20
-
21
- # constructor method!
22
- def initialize(test) end
23
- end
24
-
25
- class C < A; end
26
-
27
- class D
28
- # @private
29
- def initialize; end
30
- end
31
- eof
32
- end
33
-
34
- it "renders html format correctly" do
35
- html_equals(Registry.at('A').format(html_options), :class001)
36
- end
37
-
38
- it "renders text format correctly" do
39
- text_equals(Registry.at('A').format, :class001)
40
- end
41
-
42
- it "hides private constructors" do
43
- html_equals(Registry.at('D').format(html_options(:verifier => Verifier.new("!@private"))), :class002)
44
- end
45
- end
1
+ # frozen_string_literal: true
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ RSpec.describe YARD::Templates::Engine.template(:default, :docstring) do
5
+ before do
6
+ Registry.clear
7
+ YARD.parse_string <<-'eof'
8
+ private
9
+ # Comments
10
+ # @abstract override this class
11
+ # @author Test
12
+ # @version 1.0
13
+ # @see A
14
+ # @see http://example.com Example
15
+ class A < B
16
+ # HI
17
+ def method_missing(*args) end
18
+ # @deprecated
19
+ def a; end
20
+
21
+ # constructor method!
22
+ def initialize(test) end
23
+ end
24
+
25
+ class C < A; end
26
+
27
+ class D
28
+ # @private
29
+ def initialize; end
30
+ end
31
+ eof
32
+ end
33
+
34
+ it "renders html format correctly" do
35
+ html_equals(Registry.at('A').format(html_options), :class001)
36
+ end
37
+
38
+ it "renders text format correctly" do
39
+ text_equals(Registry.at('A').format, :class001)
40
+ end
41
+
42
+ it "hides private constructors" do
43
+ html_equals(Registry.at('D').format(html_options(:verifier => Verifier.new("!@private"))), :class002)
44
+ end
45
+ end
@@ -1,41 +1,41 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + "/spec_helper"
3
-
4
- RSpec.describe YARD::Templates::Engine.template(:default, :constant) do
5
- describe "fully dressed constant" do
6
- it "renders text format correctly" do
7
- YARD.parse_string <<-'eof'
8
- class YARD::CLI::YRI
9
- # Default search paths that should be loaded dynamically into YRI. These paths
10
- # take precedence over all other paths ({SEARCH_PATHS_FILE} and RubyGems
11
- # paths). To add a path, call:
12
- #
13
- # DEFAULT_SEARCH_PATHS.push("/path/to/.yardoc")
14
- #
15
- # @return [Array<String>] a list of extra search paths
16
- # @since 0.6.0
17
- DEFAULT_SEARCH_PATHS = []
18
- end
19
- eof
20
- text_equals(Registry.at('YARD::CLI::YRI::DEFAULT_SEARCH_PATHS').format(text_options), :constant001)
21
- end
22
- end
23
-
24
- describe "simple constant with no documentation" do
25
- it "renders text format correctly" do
26
- # Short constant should show on single line
27
- YARD.parse_string <<-'eof'
28
- MYCONST = 'foo'
29
- eof
30
- text_equals(Registry.at('MYCONST').format(text_options), :constant002)
31
-
32
- # Long constant should show on multiple lines, indented
33
- YARD.parse_string <<-'eof'
34
- MYCONST = [A, B, C, D, E, F, G, H, I, J, K, L,
35
- M, N, O, P, Q, R, S, T, U, V, W,
36
- X, Y, Z]
37
- eof
38
- text_equals(Registry.at('MYCONST').format(text_options), :constant003)
39
- end
40
- end
41
- end
1
+ # frozen_string_literal: true
2
+ require File.dirname(__FILE__) + "/spec_helper"
3
+
4
+ RSpec.describe YARD::Templates::Engine.template(:default, :constant) do
5
+ describe "fully dressed constant" do
6
+ it "renders text format correctly" do
7
+ YARD.parse_string <<-'eof'
8
+ class YARD::CLI::YRI
9
+ # Default search paths that should be loaded dynamically into YRI. These paths
10
+ # take precedence over all other paths ({SEARCH_PATHS_FILE} and RubyGems
11
+ # paths). To add a path, call:
12
+ #
13
+ # DEFAULT_SEARCH_PATHS.push("/path/to/.yardoc")
14
+ #
15
+ # @return [Array<String>] a list of extra search paths
16
+ # @since 0.6.0
17
+ DEFAULT_SEARCH_PATHS = []
18
+ end
19
+ eof
20
+ text_equals(Registry.at('YARD::CLI::YRI::DEFAULT_SEARCH_PATHS').format(text_options), :constant001)
21
+ end
22
+ end
23
+
24
+ describe "simple constant with no documentation" do
25
+ it "renders text format correctly" do
26
+ # Short constant should show on single line
27
+ YARD.parse_string <<-'eof'
28
+ MYCONST = 'foo'
29
+ eof
30
+ text_equals(Registry.at('MYCONST').format(text_options), :constant002)
31
+
32
+ # Long constant should show on multiple lines, indented
33
+ YARD.parse_string <<-'eof'
34
+ MYCONST = [A, B, C, D, E, F, G, H, I, J, K, L,
35
+ M, N, O, P, Q, R, S, T, U, V, W,
36
+ X, Y, Z]
37
+ eof
38
+ text_equals(Registry.at('MYCONST').format(text_options), :constant003)
39
+ end
40
+ end
41
+ end
@@ -1,131 +1,131 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/spec_helper'
3
-
4
- RSpec.describe YARD::Templates::Engine do
5
- before { @paths = Engine.template_paths }
6
- after { Engine.template_paths = @paths }
7
-
8
- describe ".register_template_path" do
9
- it "registers a String path" do
10
- Engine.register_template_path('.')
11
- expect(Engine.template_paths.pop).to eq '.'
12
- end
13
-
14
- it "does not duplicate paths" do
15
- Engine.template_paths = []
16
- Engine.register_template_path('foo')
17
- Engine.register_template_path('foo')
18
- expect(Engine.template_paths).to eq ['foo']
19
- end
20
- end
21
-
22
- describe ".template!" do
23
- it "creates a module including Template" do
24
- mod = Engine.template!('path/to/template')
25
- expect(mod).to include(Template)
26
- expect(mod.full_path.to_s).to eq 'path/to/template'
27
- end
28
-
29
- it "creates a module including Template with full_path" do
30
- mod = Engine.template!('path/to/template2', '/full/path/to/template2')
31
- expect(mod).to include(Template)
32
- expect(mod.full_path.to_s).to eq '/full/path/to/template2'
33
- end
34
- end
35
-
36
- describe ".template" do
37
- it "raises an error if the template is not found" do
38
- expect { Engine.template(:a, :b, :c) }.to raise_error(ArgumentError)
39
- end
40
-
41
- it "creates a module including Template" do
42
- mock = double(:template)
43
- expect(Engine).to receive(:find_template_paths).with(nil, 'template/name').and_return(['/full/path/template/name'])
44
- expect(Engine).to receive(:template!).with('template/name', ['/full/path/template/name']).and_return(mock)
45
- expect(Engine.template('template/name')).to eq mock
46
- end
47
-
48
- it "creates a Template from a relative Template path" do
49
- expect(Engine).to receive(:template_paths).and_return([])
50
- expect(File).to receive(:directory?).with("/full/path/template/notname").and_return(true)
51
- start_template = double(:start_template,
52
- :full_path => '/full/path/template/name',
53
- :full_paths => ['/full/path/template/name'])
54
- expect(start_template).to receive(:is_a?).with(Template).and_return(true)
55
- mod = Engine.template(start_template, '..', 'notname')
56
- expect(mod).to include(Template)
57
- expect(mod.full_path.to_s).to eq "/full/path/template/notname"
58
- end
59
-
60
- it "creates a Template including other matching templates in path" do
61
- paths = ['/full/path/template/name', '/full/path2/template/name']
62
- expect(Engine).to receive(:find_template_paths).with(nil, 'template').at_least(1).times.and_return([])
63
- expect(Engine).to receive(:find_template_paths).with(nil, 'template/name').and_return(paths)
64
- ancestors = Engine.template('template/name').ancestors.map(&:class_name)
65
- expect(ancestors).to include("Template__full_path2_template_name")
66
- end
67
-
68
- it "includes parent directories before other template paths" do
69
- paths = ['/full/path/template/name', '/full/path2/template/name']
70
- expect(Engine).to receive(:find_template_paths).with(nil, 'template/name').and_return(paths)
71
- ancestors = Engine.template('template/name').ancestors.map(&:class_name)
72
- expect(ancestors[0, 4]).to eq ["Template__full_path_template_name", "Template__full_path_template",
73
- "Template__full_path2_template_name", "Template__full_path2_template"]
74
- end
75
- end
76
-
77
- describe ".generate" do
78
- it "generates with fulldoc template" do
79
- mod = double(:template)
80
- options = TemplateOptions.new
81
- options.reset_defaults
82
- options.objects = [:a, :b, :c]
83
- options.object = Registry.root
84
- expect(mod).to receive(:run).with(options)
85
- expect(Engine).to receive(:template).with(:default, :fulldoc, :text).and_return(mod)
86
- Engine.generate([:a, :b, :c])
87
- end
88
- end
89
-
90
- describe ".render" do
91
- def loads_template(*args)
92
- expect(Engine).to receive(:template).with(*args).and_return(@template)
93
- end
94
-
95
- before(:all) do
96
- @object = CodeObjects::MethodObject.new(:root, :method)
97
- end
98
-
99
- before do
100
- @options = TemplateOptions.new
101
- @options.reset_defaults
102
- @options.object = @object
103
- @options.type = @object.type
104
- @template = double(:template, :include => nil)
105
- expect(@template).to receive(:run).with(@options)
106
- end
107
-
108
- it "accepts method call with no parameters" do
109
- loads_template(:default, :method, :text)
110
- @object.format
111
- end
112
-
113
- it "allows template key to be changed" do
114
- loads_template(:javadoc, :method, :text)
115
- @options.template = :javadoc
116
- @object.format(:template => :javadoc)
117
- end
118
-
119
- it "allows type key to be changed" do
120
- loads_template(:default, :fulldoc, :text)
121
- @options.type = :fulldoc
122
- @object.format(:type => :fulldoc)
123
- end
124
-
125
- it "allows format key to be changed" do
126
- loads_template(:default, :method, :html)
127
- @options.format = :html
128
- @object.format(:format => :html)
129
- end
130
- end
131
- end
1
+ # frozen_string_literal: true
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ RSpec.describe YARD::Templates::Engine do
5
+ before { @paths = Engine.template_paths }
6
+ after { Engine.template_paths = @paths }
7
+
8
+ describe ".register_template_path" do
9
+ it "registers a String path" do
10
+ Engine.register_template_path('.')
11
+ expect(Engine.template_paths.pop).to eq '.'
12
+ end
13
+
14
+ it "does not duplicate paths" do
15
+ Engine.template_paths = []
16
+ Engine.register_template_path('foo')
17
+ Engine.register_template_path('foo')
18
+ expect(Engine.template_paths).to eq ['foo']
19
+ end
20
+ end
21
+
22
+ describe ".template!" do
23
+ it "creates a module including Template" do
24
+ mod = Engine.template!('path/to/template')
25
+ expect(mod).to include(Template)
26
+ expect(mod.full_path.to_s).to eq 'path/to/template'
27
+ end
28
+
29
+ it "creates a module including Template with full_path" do
30
+ mod = Engine.template!('path/to/template2', '/full/path/to/template2')
31
+ expect(mod).to include(Template)
32
+ expect(mod.full_path.to_s).to eq '/full/path/to/template2'
33
+ end
34
+ end
35
+
36
+ describe ".template" do
37
+ it "raises an error if the template is not found" do
38
+ expect { Engine.template(:a, :b, :c) }.to raise_error(ArgumentError)
39
+ end
40
+
41
+ it "creates a module including Template" do
42
+ mock = double(:template)
43
+ expect(Engine).to receive(:find_template_paths).with(nil, 'template/name').and_return(['/full/path/template/name'])
44
+ expect(Engine).to receive(:template!).with('template/name', ['/full/path/template/name']).and_return(mock)
45
+ expect(Engine.template('template/name')).to eq mock
46
+ end
47
+
48
+ it "creates a Template from a relative Template path" do
49
+ expect(Engine).to receive(:template_paths).and_return([])
50
+ expect(File).to receive(:directory?).with("/full/path/template/notname").and_return(true)
51
+ start_template = double(:start_template,
52
+ :full_path => '/full/path/template/name',
53
+ :full_paths => ['/full/path/template/name'])
54
+ expect(start_template).to receive(:is_a?).with(Template).and_return(true)
55
+ mod = Engine.template(start_template, '..', 'notname')
56
+ expect(mod).to include(Template)
57
+ expect(mod.full_path.to_s).to eq "/full/path/template/notname"
58
+ end
59
+
60
+ it "creates a Template including other matching templates in path" do
61
+ paths = ['/full/path/template/name', '/full/path2/template/name']
62
+ expect(Engine).to receive(:find_template_paths).with(nil, 'template').at_least(1).times.and_return([])
63
+ expect(Engine).to receive(:find_template_paths).with(nil, 'template/name').and_return(paths)
64
+ ancestors = Engine.template('template/name').ancestors.map(&:class_name)
65
+ expect(ancestors).to include("Template__full_path2_template_name")
66
+ end
67
+
68
+ it "includes parent directories before other template paths" do
69
+ paths = ['/full/path/template/name', '/full/path2/template/name']
70
+ expect(Engine).to receive(:find_template_paths).with(nil, 'template/name').and_return(paths)
71
+ ancestors = Engine.template('template/name').ancestors.map(&:class_name)
72
+ expect(ancestors[0, 4]).to eq ["Template__full_path_template_name", "Template__full_path_template",
73
+ "Template__full_path2_template_name", "Template__full_path2_template"]
74
+ end
75
+ end
76
+
77
+ describe ".generate" do
78
+ it "generates with fulldoc template" do
79
+ mod = double(:template)
80
+ options = TemplateOptions.new
81
+ options.reset_defaults
82
+ options.objects = [:a, :b, :c]
83
+ options.object = Registry.root
84
+ expect(mod).to receive(:run).with(options)
85
+ expect(Engine).to receive(:template).with(:default, :fulldoc, :text).and_return(mod)
86
+ Engine.generate([:a, :b, :c])
87
+ end
88
+ end
89
+
90
+ describe ".render" do
91
+ def loads_template(*args)
92
+ expect(Engine).to receive(:template).with(*args).and_return(@template)
93
+ end
94
+
95
+ before(:all) do
96
+ @object = CodeObjects::MethodObject.new(:root, :method)
97
+ end
98
+
99
+ before do
100
+ @options = TemplateOptions.new
101
+ @options.reset_defaults
102
+ @options.object = @object
103
+ @options.type = @object.type
104
+ @template = double(:template, :include => nil)
105
+ expect(@template).to receive(:run).with(@options)
106
+ end
107
+
108
+ it "accepts method call with no parameters" do
109
+ loads_template(:default, :method, :text)
110
+ @object.format
111
+ end
112
+
113
+ it "allows template key to be changed" do
114
+ loads_template(:javadoc, :method, :text)
115
+ @options.template = :javadoc
116
+ @object.format(:template => :javadoc)
117
+ end
118
+
119
+ it "allows type key to be changed" do
120
+ loads_template(:default, :fulldoc, :text)
121
+ @options.type = :fulldoc
122
+ @object.format(:type => :fulldoc)
123
+ end
124
+
125
+ it "allows format key to be changed" do
126
+ loads_template(:default, :method, :html)
127
+ @options.format = :html
128
+ @object.format(:format => :html)
129
+ end
130
+ end
131
+ end
@@ -1,308 +1,308 @@
1
- <h1>Class: A
2
- <span class="abstract note title">Abstract</span>
3
-
4
-
5
- </h1>
6
- <div class="box_info">
7
-
8
- <dl>
9
- <dt>Inherits:</dt>
10
- <dd>
11
- <span class="inheritName">B</span>
12
-
13
- <ul class="fullTree">
14
- <li>Object</li>
15
-
16
- <li class="next">B</li>
17
-
18
- <li class="next">A</li>
19
-
20
- </ul>
21
- <a href="#" class="inheritanceTree">show all</a>
22
-
23
- </dd>
24
- </dl>
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
- <dl>
37
- <dt>Defined in:</dt>
38
- <dd>(stdin)</dd>
39
- </dl>
40
-
41
- </div>
42
-
43
- <h2>Overview</h2><div class="docstring">
44
- <div class="discussion">
45
- <div class="note abstract">
46
- <strong>This class is abstract.</strong>
47
- <div class='inline'>override this class</div>
48
- </div>
49
- Comments
50
-
51
- </div>
52
- </div>
53
- <div class="tags">
54
-
55
-
56
- <p class="tag_title">See Also:</p>
57
- <ul class="see">
58
-
59
- <li>A</li>
60
-
61
- <li><a href="http://example.com" target="_parent" title="Example">Example</a></li>
62
-
63
- </ul>
64
- <p class="tag_title">Author:</p>
65
- <ul class="author">
66
-
67
- <li>
68
-
69
-
70
-
71
-
72
-
73
- <div class='inline'>Test</div>
74
-
75
- </li>
76
-
77
- </ul>
78
- <p class="tag_title">Version:</p>
79
- <ul class="version">
80
-
81
- <li>
82
-
83
-
84
-
85
-
86
-
87
- <div class='inline'>1.0</div>
88
-
89
- </li>
90
-
91
- </ul>
92
-
93
- </div><div id="subclasses">
94
- <h2>Direct Known Subclasses</h2>
95
- <p class="children">C</p>
96
- </div>
97
-
98
-
99
-
100
-
101
-
102
-
103
-
104
-
105
- <h2>
106
- Instance Method Summary
107
- <small><a href="#" class="summary_toggle">collapse</a></small>
108
- </h2>
109
-
110
- <ul class="summary">
111
-
112
- <li class="public deprecated">
113
- <span class="summary_signature">
114
-
115
- <a title="#a (instance method)">#<strong>a</strong> </a>
116
-
117
-
118
-
119
- </span>
120
-
121
-
122
-
123
-
124
-
125
- <span class="deprecated note title">deprecated</span>
126
-
127
-
128
-
129
- <span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'></div></span>
130
-
131
- </li>
132
-
133
-
134
- <li class="public ">
135
- <span class="summary_signature">
136
-
137
- <a title="#initialize (instance method)">#<strong>initialize</strong>(test) &#x21d2; A </a>
138
-
139
-
140
-
141
- </span>
142
-
143
-
144
- <span class="note title constructor">constructor</span>
145
-
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
- <span class="summary_desc"><div class='inline'>constructor method!.</div></span>
154
-
155
- </li>
156
-
157
-
158
- <li class="public ">
159
- <span class="summary_signature">
160
-
161
- <a title="#method_missing (instance method)">#<strong>method_missing</strong>(*args) </a>
162
-
163
-
164
-
165
- </span>
166
-
167
-
168
-
169
-
170
-
171
-
172
-
173
-
174
-
175
- <span class="summary_desc"><div class='inline'>HI.</div></span>
176
-
177
- </li>
178
-
179
-
180
- </ul>
181
-
182
-
183
-
184
- <div id="constructor_details" class="method_details_list">
185
- <h2>Constructor Details</h2>
186
-
187
- <div class="method_details first">
188
- <h3 class="signature first" id="initialize-instance_method">
189
-
190
- #<strong>initialize</strong>(test) &#x21d2; <tt>A</tt>
191
-
192
-
193
-
194
-
195
-
196
- </h3><div class="docstring">
197
- <div class="discussion">
198
- constructor method!
199
-
200
- </div>
201
- </div>
202
- <div class="tags">
203
-
204
-
205
- </div><table class="source_code">
206
- <tr>
207
- <td>
208
- <pre class="lines">
209
-
210
-
211
- 15</pre>
212
- </td>
213
- <td>
214
- <pre class="code"><span class="info file"># File '(stdin)', line 15</span>
215
-
216
- def initialize(test) end</pre>
217
- </td>
218
- </tr>
219
- </table>
220
- </div>
221
-
222
- </div>
223
- <div id="method_missing_details" class="method_details_list">
224
- <h2>Dynamic Method Handling</h2>
225
- <p class="notice this">
226
- This class handles dynamic methods through the <tt>method_missing</tt> method
227
-
228
- </p>
229
-
230
- <div class="method_details first">
231
- <h3 class="signature first" id="method_missing-instance_method">
232
-
233
- #<strong>method_missing</strong>(*args)
234
-
235
-
236
-
237
-
238
-
239
- </h3><div class="docstring">
240
- <div class="discussion">
241
- HI
242
-
243
- </div>
244
- </div>
245
- <div class="tags">
246
-
247
-
248
- </div><table class="source_code">
249
- <tr>
250
- <td>
251
- <pre class="lines">
252
-
253
-
254
- 10</pre>
255
- </td>
256
- <td>
257
- <pre class="code"><span class="info file"># File '(stdin)', line 10</span>
258
-
259
- def method_missing(*args) end</pre>
260
- </td>
261
- </tr>
262
- </table>
263
- </div>
264
-
265
- </div>
266
-
267
-
268
- <div id="instance_method_details" class="method_details_list">
269
- <h2>Instance Method Details</h2>
270
-
271
-
272
- <div class="method_details first">
273
- <h3 class="signature first" id="a-instance_method">
274
-
275
- #<strong>a</strong>
276
-
277
-
278
-
279
-
280
-
281
- </h3><div class="docstring">
282
- <div class="discussion">
283
- <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'></div></div>
284
-
285
-
286
- </div>
287
- </div>
288
- <div class="tags">
289
-
290
-
291
- </div><table class="source_code">
292
- <tr>
293
- <td>
294
- <pre class="lines">
295
-
296
-
297
- 12</pre>
298
- </td>
299
- <td>
300
- <pre class="code"><span class="info file"># File '(stdin)', line 12</span>
301
-
302
- def a; end</pre>
303
- </td>
304
- </tr>
305
- </table>
306
- </div>
307
-
308
- </div>
1
+ <h1>Class: A
2
+ <span class="abstract note title">Abstract</span>
3
+
4
+
5
+ </h1>
6
+ <div class="box_info">
7
+
8
+ <dl>
9
+ <dt>Inherits:</dt>
10
+ <dd>
11
+ <span class="inheritName">B</span>
12
+
13
+ <ul class="fullTree">
14
+ <li>Object</li>
15
+
16
+ <li class="next">B</li>
17
+
18
+ <li class="next">A</li>
19
+
20
+ </ul>
21
+ <a href="#" class="inheritanceTree">show all</a>
22
+
23
+ </dd>
24
+ </dl>
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+ <dl>
37
+ <dt>Defined in:</dt>
38
+ <dd>(stdin)</dd>
39
+ </dl>
40
+
41
+ </div>
42
+
43
+ <h2>Overview</h2><div class="docstring">
44
+ <div class="discussion">
45
+ <div class="note abstract">
46
+ <strong>This class is abstract.</strong>
47
+ <div class='inline'>override this class</div>
48
+ </div>
49
+ Comments
50
+
51
+ </div>
52
+ </div>
53
+ <div class="tags">
54
+
55
+
56
+ <p class="tag_title">See Also:</p>
57
+ <ul class="see">
58
+
59
+ <li>A</li>
60
+
61
+ <li><a href="http://example.com" target="_parent" title="Example">Example</a></li>
62
+
63
+ </ul>
64
+ <p class="tag_title">Author:</p>
65
+ <ul class="author">
66
+
67
+ <li>
68
+
69
+
70
+
71
+
72
+
73
+ <div class='inline'>Test</div>
74
+
75
+ </li>
76
+
77
+ </ul>
78
+ <p class="tag_title">Version:</p>
79
+ <ul class="version">
80
+
81
+ <li>
82
+
83
+
84
+
85
+
86
+
87
+ <div class='inline'>1.0</div>
88
+
89
+ </li>
90
+
91
+ </ul>
92
+
93
+ </div><div id="subclasses">
94
+ <h2>Direct Known Subclasses</h2>
95
+ <p class="children">C</p>
96
+ </div>
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+ <h2>
106
+ Instance Method Summary
107
+ <small><a href="#" class="summary_toggle">collapse</a></small>
108
+ </h2>
109
+
110
+ <ul class="summary">
111
+
112
+ <li class="public deprecated">
113
+ <span class="summary_signature">
114
+
115
+ <a title="#a (instance method)">#<strong>a</strong> </a>
116
+
117
+
118
+
119
+ </span>
120
+
121
+
122
+
123
+
124
+
125
+ <span class="deprecated note title">deprecated</span>
126
+
127
+
128
+
129
+ <span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'></div></span>
130
+
131
+ </li>
132
+
133
+
134
+ <li class="public ">
135
+ <span class="summary_signature">
136
+
137
+ <a title="#initialize (instance method)">#<strong>initialize</strong>(test) &#x21d2; A </a>
138
+
139
+
140
+
141
+ </span>
142
+
143
+
144
+ <span class="note title constructor">constructor</span>
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+ <span class="summary_desc"><div class='inline'>constructor method!.</div></span>
154
+
155
+ </li>
156
+
157
+
158
+ <li class="public ">
159
+ <span class="summary_signature">
160
+
161
+ <a title="#method_missing (instance method)">#<strong>method_missing</strong>(*args) </a>
162
+
163
+
164
+
165
+ </span>
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+ <span class="summary_desc"><div class='inline'>HI.</div></span>
176
+
177
+ </li>
178
+
179
+
180
+ </ul>
181
+
182
+
183
+
184
+ <div id="constructor_details" class="method_details_list">
185
+ <h2>Constructor Details</h2>
186
+
187
+ <div class="method_details first">
188
+ <h3 class="signature first" id="initialize-instance_method">
189
+
190
+ #<strong>initialize</strong>(test) &#x21d2; <tt>A</tt>
191
+
192
+
193
+
194
+
195
+
196
+ </h3><div class="docstring">
197
+ <div class="discussion">
198
+ constructor method!
199
+
200
+ </div>
201
+ </div>
202
+ <div class="tags">
203
+
204
+
205
+ </div><table class="source_code">
206
+ <tr>
207
+ <td>
208
+ <pre class="lines">
209
+
210
+
211
+ 15</pre>
212
+ </td>
213
+ <td>
214
+ <pre class="code"><span class="info file"># File '(stdin)', line 15</span>
215
+
216
+ def initialize(test) end</pre>
217
+ </td>
218
+ </tr>
219
+ </table>
220
+ </div>
221
+
222
+ </div>
223
+ <div id="method_missing_details" class="method_details_list">
224
+ <h2>Dynamic Method Handling</h2>
225
+ <p class="notice this">
226
+ This class handles dynamic methods through the <tt>method_missing</tt> method
227
+
228
+ </p>
229
+
230
+ <div class="method_details first">
231
+ <h3 class="signature first" id="method_missing-instance_method">
232
+
233
+ #<strong>method_missing</strong>(*args)
234
+
235
+
236
+
237
+
238
+
239
+ </h3><div class="docstring">
240
+ <div class="discussion">
241
+ HI
242
+
243
+ </div>
244
+ </div>
245
+ <div class="tags">
246
+
247
+
248
+ </div><table class="source_code">
249
+ <tr>
250
+ <td>
251
+ <pre class="lines">
252
+
253
+
254
+ 10</pre>
255
+ </td>
256
+ <td>
257
+ <pre class="code"><span class="info file"># File '(stdin)', line 10</span>
258
+
259
+ def method_missing(*args) end</pre>
260
+ </td>
261
+ </tr>
262
+ </table>
263
+ </div>
264
+
265
+ </div>
266
+
267
+
268
+ <div id="instance_method_details" class="method_details_list">
269
+ <h2>Instance Method Details</h2>
270
+
271
+
272
+ <div class="method_details first">
273
+ <h3 class="signature first" id="a-instance_method">
274
+
275
+ #<strong>a</strong>
276
+
277
+
278
+
279
+
280
+
281
+ </h3><div class="docstring">
282
+ <div class="discussion">
283
+ <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'></div></div>
284
+
285
+
286
+ </div>
287
+ </div>
288
+ <div class="tags">
289
+
290
+
291
+ </div><table class="source_code">
292
+ <tr>
293
+ <td>
294
+ <pre class="lines">
295
+
296
+
297
+ 12</pre>
298
+ </td>
299
+ <td>
300
+ <pre class="code"><span class="info file"># File '(stdin)', line 12</span>
301
+
302
+ def a; end</pre>
303
+ </td>
304
+ </tr>
305
+ </table>
306
+ </div>
307
+
308
+ </div>