yard 0.9.18 → 0.9.23

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 +781 -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 -1875
@@ -1,65 +1,65 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe YARD::Templates::Helpers::HtmlSyntaxHighlightHelper do
4
- include YARD::Templates::Helpers::HtmlHelper
5
- include YARD::Templates::Helpers::HtmlSyntaxHighlightHelper
6
-
7
- describe "#html_syntax_highlight" do
8
- let(:object) { CodeObjects::NamespaceObject.new(:root, :YARD) }
9
-
10
- before do
11
- Registry.root.source_type = :ruby
12
- end
13
-
14
- it "does not highlight source if options.highlight is false" do
15
- expect(self).to receive(:options).and_return(Options.new.update(:highlight => false))
16
- expect(html_syntax_highlight("def x\nend")).to eq "def x\nend"
17
- end
18
-
19
- it "highlights source (legacy)" do
20
- type = Parser::SourceParser.parser_type
21
- Parser::SourceParser.parser_type = :ruby18
22
- expect(self).to receive(:options).and_return(Options.new.update(:highlight => true))
23
- expect = "<span class='rubyid_def def kw'>def</span><span class='rubyid_x identifier id'>x</span>
24
- <span class='string val'>'x'</span><span class='plus op'>+</span>
25
- <span class='regexp val'>/x/i</span><span class='rubyid_end end kw'>end</span>"
26
- result = html_syntax_highlight("def x\n 'x' + /x/i\nend")
27
- html_equals_string(result, expect)
28
- Parser::SourceParser.parser_type = type
29
- end
30
-
31
- it "highlights source (ripper)" do
32
- expect(self).to receive(:options).and_return(Options.new.update(:highlight => true))
33
- Parser::SourceParser.parser_type = :ruby
34
- expect = "<span class='kw'>def</span> <span class='id identifier rubyid_x'>x</span>
35
- <span class='tstring'><span class='tstring_beg'>'</span>
36
- <span class='tstring_content'>x</span><span class='tstring_end'>'</span>
37
- </span> <span class='op'>+</span> <span class='tstring'>
38
- <span class='regexp_beg'>/</span><span class='tstring_content'>x</span>
39
- <span class='regexp_end'>/i</span></span>\n<span class='kw'>end</span>"
40
- result = html_syntax_highlight("def x\n 'x' + /x/i\nend")
41
- html_equals_string(result, expect)
42
- end if HAVE_RIPPER
43
-
44
- it "returns escaped unhighlighted source if a syntax error is found (ripper)" do
45
- allow(self).to receive(:options).and_return(Options.new.update(:highlight => true))
46
- expect(html_syntax_highlight("def &x; ... end")).to eq "def &amp;x; ... end"
47
- end if HAVE_RIPPER
48
-
49
- it "returns escaped unhighlighted source if a syntax error is found (ripper)" do
50
- allow(self).to receive(:options).and_return(Options.new.update(:highlight => true))
51
- expect(html_syntax_highlight("$ git clone http://url")).to eq "$ git clone http://url"
52
- end if HAVE_RIPPER
53
-
54
- it "links constants/methods" do
55
- other = CodeObjects::NamespaceObject.new(:root, :Other)
56
- allow(self).to receive(:options).and_return(Options.new.update(:highlight => true))
57
- allow(self).to receive(:run_verifier).with([other]).and_return([other])
58
- allow(self).to receive(:link_object).with(other, "Other").and_return("LINK!")
59
- result = html_syntax_highlight("def x; Other end")
60
- html_equals_string(result, "<span class='kw'>def</span>
61
- <span class='id identifier rubyid_x'>x</span><span class='semicolon'>;</span>
62
- <span class='const'>LINK!</span> <span class='kw'>end</span>")
63
- end if HAVE_RIPPER
64
- end
65
- end
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe YARD::Templates::Helpers::HtmlSyntaxHighlightHelper do
4
+ include YARD::Templates::Helpers::HtmlHelper
5
+ include YARD::Templates::Helpers::HtmlSyntaxHighlightHelper
6
+
7
+ describe "#html_syntax_highlight" do
8
+ let(:object) { CodeObjects::NamespaceObject.new(:root, :YARD) }
9
+
10
+ before do
11
+ Registry.root.source_type = :ruby
12
+ end
13
+
14
+ it "does not highlight source if options.highlight is false" do
15
+ expect(self).to receive(:options).and_return(Options.new.update(:highlight => false))
16
+ expect(html_syntax_highlight("def x\nend")).to eq "def x\nend"
17
+ end
18
+
19
+ it "highlights source (legacy)" do
20
+ type = Parser::SourceParser.parser_type
21
+ Parser::SourceParser.parser_type = :ruby18
22
+ expect(self).to receive(:options).and_return(Options.new.update(:highlight => true))
23
+ expect = "<span class='rubyid_def def kw'>def</span><span class='rubyid_x identifier id'>x</span>
24
+ <span class='string val'>'x'</span><span class='plus op'>+</span>
25
+ <span class='regexp val'>/x/i</span><span class='rubyid_end end kw'>end</span>"
26
+ result = html_syntax_highlight("def x\n 'x' + /x/i\nend")
27
+ html_equals_string(result, expect)
28
+ Parser::SourceParser.parser_type = type
29
+ end
30
+
31
+ it "highlights source (ripper)" do
32
+ expect(self).to receive(:options).and_return(Options.new.update(:highlight => true))
33
+ Parser::SourceParser.parser_type = :ruby
34
+ expect = "<span class='kw'>def</span> <span class='id identifier rubyid_x'>x</span>
35
+ <span class='tstring'><span class='tstring_beg'>'</span>
36
+ <span class='tstring_content'>x</span><span class='tstring_end'>'</span>
37
+ </span> <span class='op'>+</span> <span class='tstring'>
38
+ <span class='regexp_beg'>/</span><span class='tstring_content'>x</span>
39
+ <span class='regexp_end'>/i</span></span>\n<span class='kw'>end</span>"
40
+ result = html_syntax_highlight("def x\n 'x' + /x/i\nend")
41
+ html_equals_string(result, expect)
42
+ end if HAVE_RIPPER
43
+
44
+ it "returns escaped unhighlighted source if a syntax error is found (ripper)" do
45
+ allow(self).to receive(:options).and_return(Options.new.update(:highlight => true))
46
+ expect(html_syntax_highlight("def &x; ... end")).to eq "def &amp;x; ... end"
47
+ end if HAVE_RIPPER
48
+
49
+ it "returns escaped unhighlighted source if a syntax error is found (ripper)" do
50
+ allow(self).to receive(:options).and_return(Options.new.update(:highlight => true))
51
+ expect(html_syntax_highlight("$ git clone http://url")).to eq "$ git clone http://url"
52
+ end if HAVE_RIPPER
53
+
54
+ it "links constants/methods" do
55
+ other = CodeObjects::NamespaceObject.new(:root, :Other)
56
+ allow(self).to receive(:options).and_return(Options.new.update(:highlight => true))
57
+ allow(self).to receive(:run_verifier).with([other]).and_return([other])
58
+ allow(self).to receive(:link_object).with(other, "Other").and_return("LINK!")
59
+ result = html_syntax_highlight("def x; Other end")
60
+ html_equals_string(result, "<span class='kw'>def</span>
61
+ <span class='id identifier rubyid_x'>x</span><span class='semicolon'>;</span>
62
+ <span class='const'>LINK!</span> <span class='kw'>end</span>")
63
+ end if HAVE_RIPPER
64
+ end
65
+ end
@@ -1,84 +1,84 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe YARD::Templates::Helpers::Markup::RDocMarkup do
4
- describe "loading mechanism" do
5
- before { @good_libs = [] }
6
-
7
- def require(lib)
8
- return true if @good_libs.include?(lib)
9
- raise LoadError
10
- end
11
-
12
- def load_markup
13
- require 'rdoc/markup'
14
- require 'rdoc/markup/to_html'
15
- return :RDoc2
16
- rescue LoadError
17
- begin
18
- require 'rdoc/markup/simple_markup'
19
- require 'rdoc/markup/simple_markup/to_html'
20
- return :RDoc1
21
- rescue LoadError
22
- raise NameError, "could not load RDocMarkup (rdoc is not installed)"
23
- end
24
- end
25
-
26
- it "loads RDoc2.x if rdoc/markup is present" do
27
- @good_libs += ['rdoc/markup', 'rdoc/markup/to_html']
28
- expect(load_markup).to eq :RDoc2
29
- end
30
-
31
- it "fails on RDoc2.x if rdoc/markup/to_html is not present" do
32
- @good_libs += ['rdoc/markup']
33
- expect { load_markup }.to raise_error(NameError)
34
- end
35
-
36
- it "loads RDoc1.x if RDoc2 fails and rdoc/markup/simple_markup is present" do
37
- @good_libs += ['rdoc/markup/simple_markup', 'rdoc/markup/simple_markup/to_html']
38
- expect(load_markup).to eq :RDoc1
39
- end
40
-
41
- it "raises an error on loading if neither lib is present" do
42
- expect { load_markup }.to raise_error(NameError)
43
- end
44
- end
45
-
46
- describe "#to_html" do
47
- def to_html(text)
48
- html = YARD::Templates::Helpers::Markup::RDocMarkup.new(text).to_html
49
- html.strip.gsub(/\r?\n/, '')
50
- end
51
-
52
- it "handles typewriter text" do
53
- expect(to_html('Hello +<code>+')).to eq '<p>Hello <tt>&lt;code&gt;</tt></p>'
54
- end
55
- end
56
-
57
- describe "#fix_typewriter" do
58
- def fix_typewriter(text)
59
- YARD::Templates::Helpers::Markup::RDocMarkup.new('').send(:fix_typewriter, text)
60
- end
61
-
62
- it "converts +text+ to <tt>text</tt>" do
63
- expect(fix_typewriter("Some +typewriter text &lt;+.")).to eq "Some <tt>typewriter text &lt;</tt>."
64
- expect(fix_typewriter("Not +typewriter text.")).to eq "Not +typewriter text."
65
- expect(fix_typewriter("Alternating +type writer+ text +here+.")).to eq "Alternating <tt>type writer</tt> text <tt>here</tt>."
66
- expect(fix_typewriter("No ++problem.")).to eq "No ++problem."
67
- expect(fix_typewriter("Math + stuff +is ok+")).to eq "Math + stuff <tt>is ok</tt>"
68
- expect(fix_typewriter("Hello +{Foo}+ World")).to eq "Hello <tt>{Foo}</tt> World"
69
- end
70
-
71
- it "does not apply to code blocks" do
72
- expect(fix_typewriter("<code>Hello +hello+</code>")).to eq "<code>Hello +hello+</code>"
73
- end
74
-
75
- it "does not apply to HTML tag attributes" do
76
- expect(fix_typewriter("<a href='http://foo.com/A+b+c'>A+b+c</a>")).to eq "<a href='http://foo.com/A+b+c'>A+b+c</a>"
77
- expect(fix_typewriter("<foo class='foo+bar+baz'/>")).to eq "<foo class='foo+bar+baz'/>"
78
- end
79
-
80
- it "still applies inside of other tags" do
81
- expect(fix_typewriter("<p>+foo+</p>")).to eq "<p><tt>foo</tt></p>"
82
- end
83
- end
84
- end
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe YARD::Templates::Helpers::Markup::RDocMarkup do
4
+ describe "loading mechanism" do
5
+ before { @good_libs = [] }
6
+
7
+ def require(lib)
8
+ return true if @good_libs.include?(lib)
9
+ raise LoadError
10
+ end
11
+
12
+ def load_markup
13
+ require 'rdoc/markup'
14
+ require 'rdoc/markup/to_html'
15
+ return :RDoc2
16
+ rescue LoadError
17
+ begin
18
+ require 'rdoc/markup/simple_markup'
19
+ require 'rdoc/markup/simple_markup/to_html'
20
+ return :RDoc1
21
+ rescue LoadError
22
+ raise NameError, "could not load RDocMarkup (rdoc is not installed)"
23
+ end
24
+ end
25
+
26
+ it "loads RDoc2.x if rdoc/markup is present" do
27
+ @good_libs += ['rdoc/markup', 'rdoc/markup/to_html']
28
+ expect(load_markup).to eq :RDoc2
29
+ end
30
+
31
+ it "fails on RDoc2.x if rdoc/markup/to_html is not present" do
32
+ @good_libs += ['rdoc/markup']
33
+ expect { load_markup }.to raise_error(NameError)
34
+ end
35
+
36
+ it "loads RDoc1.x if RDoc2 fails and rdoc/markup/simple_markup is present" do
37
+ @good_libs += ['rdoc/markup/simple_markup', 'rdoc/markup/simple_markup/to_html']
38
+ expect(load_markup).to eq :RDoc1
39
+ end
40
+
41
+ it "raises an error on loading if neither lib is present" do
42
+ expect { load_markup }.to raise_error(NameError)
43
+ end
44
+ end
45
+
46
+ describe "#to_html" do
47
+ def to_html(text)
48
+ html = YARD::Templates::Helpers::Markup::RDocMarkup.new(text).to_html
49
+ html.strip.gsub(/\r?\n/, '')
50
+ end
51
+
52
+ it "handles typewriter text" do
53
+ expect(to_html('Hello +<code>+')).to eq '<p>Hello <tt>&lt;code&gt;</tt></p>'
54
+ end
55
+ end
56
+
57
+ describe "#fix_typewriter" do
58
+ def fix_typewriter(text)
59
+ YARD::Templates::Helpers::Markup::RDocMarkup.new('').send(:fix_typewriter, text)
60
+ end
61
+
62
+ it "converts +text+ to <tt>text</tt>" do
63
+ expect(fix_typewriter("Some +typewriter text &lt;+.")).to eq "Some <tt>typewriter text &lt;</tt>."
64
+ expect(fix_typewriter("Not +typewriter text.")).to eq "Not +typewriter text."
65
+ expect(fix_typewriter("Alternating +type writer+ text +here+.")).to eq "Alternating <tt>type writer</tt> text <tt>here</tt>."
66
+ expect(fix_typewriter("No ++problem.")).to eq "No ++problem."
67
+ expect(fix_typewriter("Math + stuff +is ok+")).to eq "Math + stuff <tt>is ok</tt>"
68
+ expect(fix_typewriter("Hello +{Foo}+ World")).to eq "Hello <tt>{Foo}</tt> World"
69
+ end
70
+
71
+ it "does not apply to code blocks" do
72
+ expect(fix_typewriter("<code>Hello +hello+</code>")).to eq "<code>Hello +hello+</code>"
73
+ end
74
+
75
+ it "does not apply to HTML tag attributes" do
76
+ expect(fix_typewriter("<a href='http://foo.com/A+b+c'>A+b+c</a>")).to eq "<a href='http://foo.com/A+b+c'>A+b+c</a>"
77
+ expect(fix_typewriter("<foo class='foo+bar+baz'/>")).to eq "<foo class='foo+bar+baz'/>"
78
+ end
79
+
80
+ it "still applies inside of other tags" do
81
+ expect(fix_typewriter("<p>+foo+</p>")).to eq "<p><tt>foo</tt></p>"
82
+ end
83
+ end
84
+ end
@@ -1,136 +1,136 @@
1
- # frozen_string_literal: true
2
-
3
- module YARD::Templates::Helpers::MarkupHelper
4
- public :load_markup_provider, :markup_class, :markup_provider
5
- end
6
-
7
- class GeneratorMock
8
- attr_accessor :options
9
- include YARD::Templates::Helpers::MarkupHelper
10
- def initialize(options = Templates::TemplateOptions.new)
11
- self.options = options
12
- end
13
- end
14
-
15
- RSpec.describe YARD::Templates::Helpers::MarkupHelper do
16
- before do
17
- YARD::Templates::Helpers::MarkupHelper.clear_markup_cache
18
- end
19
-
20
- describe "#load_markup_provider" do
21
- before do
22
- allow(log).to receive(:error)
23
- @gen = GeneratorMock.new
24
- @gen.options.reset_defaults
25
- end
26
-
27
- it "exits on an invalid markup type" do
28
- @gen.options.markup = :invalid
29
- expect(@gen.load_markup_provider).to be false
30
- end
31
-
32
- it "fails when an invalid markup provider is specified" do
33
- @gen.options.update(:markup => :markdown, :markup_provider => :invalid)
34
- expect(@gen.load_markup_provider).to be false
35
- expect(@gen.markup_class).to eq nil
36
- end
37
-
38
- it "loads RDocMarkup if rdoc is specified and it is installed" do
39
- @gen.options.markup = :rdoc
40
- expect(@gen.load_markup_provider).to be true
41
- expect(@gen.markup_class).to eq YARD::Templates::Helpers::Markup::RDocMarkup
42
- end
43
-
44
- it "fails if RDoc cannot be loaded" do
45
- @gen.options.markup = :rdoc
46
- expect(@gen).to receive(:eval).with('::YARD::Templates::Helpers::Markup::RDocMarkup').and_raise(NameError)
47
- expect(@gen.load_markup_provider).to be false
48
- expect(@gen.markup_provider).to eq nil
49
- end
50
-
51
- it "searches through available markup providers for the markup type if none is set" do
52
- expect(@gen).to receive(:eval).with('::RedcarpetCompat').and_return(double(:bluecloth))
53
- expect(@gen).to receive(:require).with('redcarpet').and_return(true)
54
- expect(@gen).not_to receive(:require).with('maruku')
55
- @gen.options.markup = :markdown
56
- # this only raises an exception because we mock out require to avoid
57
- # loading any libraries but our implementation tries to return the library
58
- # name as a constant
59
- expect(@gen.load_markup_provider).to be true
60
- expect(@gen.markup_provider).to eq :redcarpet
61
- end
62
-
63
- it "continues searching if some of the providers are unavailable" do
64
- expect(@gen).to receive(:require).with('redcarpet').and_raise(LoadError)
65
- expect(@gen).to receive(:require).with('rdiscount').and_raise(LoadError)
66
- expect(@gen).to receive(:require).with('kramdown').and_raise(LoadError)
67
- expect(@gen).to receive(:require).with('bluecloth').and_raise(LoadError)
68
- expect(@gen).to receive(:require).with('maruku').and_raise(LoadError)
69
- expect(@gen).to receive(:require).with('rpeg-markdown').and_return(true)
70
- expect(@gen).to receive(:eval).with('::PEGMarkdown').and_return(true)
71
- @gen.options.markup = :markdown
72
- # this only raises an exception because we mock out require to avoid
73
- # loading any libraries but our implementation tries to return the library
74
- # name as a constant
75
- @gen.load_markup_provider
76
- expect(@gen.markup_provider).to eq :"rpeg-markdown"
77
- end
78
-
79
- it "overrides the search if `:markup_provider` is set in options" do
80
- expect(@gen).to receive(:require).with('rdiscount').and_return(true)
81
- expect(@gen).to receive(:eval).with('::RDiscount').and_return(true)
82
- @gen.options.update(:markup => :markdown, :markup_provider => :rdiscount)
83
- @gen.load_markup_provider
84
- expect(@gen.markup_provider).to eq :rdiscount
85
- end
86
-
87
- it "fails if no provider is found" do
88
- YARD::Templates::Helpers::MarkupHelper::MARKUP_PROVIDERS[:markdown].each do |p|
89
- expect(@gen).to receive(:require).with(p[:lib].to_s).and_raise(LoadError)
90
- end
91
- @gen.options.markup = :markdown
92
- expect(@gen.load_markup_provider).to be false
93
- expect(@gen.markup_provider).to eq nil
94
- end
95
-
96
- it "fails if overridden provider is not found" do
97
- expect(@gen).to receive(:require).with('rdiscount').and_raise(LoadError)
98
- @gen.options.update(:markup => :markdown, :markup_provider => :rdiscount)
99
- expect(@gen.load_markup_provider).to be false
100
- expect(@gen.markup_provider).to eq nil
101
- end
102
-
103
- it "fails if the markup type is not found" do
104
- expect(log).to receive(:error).with(/Invalid markup/)
105
- @gen.options.markup = :xxx
106
- expect(@gen.load_markup_provider).to be false
107
- expect(@gen.markup_provider).to eq nil
108
- end
109
- end
110
-
111
- describe "#markup_for_file" do
112
- include YARD::Templates::Helpers::MarkupHelper
113
-
114
- it "looks for a shebang line" do
115
- expect(markup_for_file("#!text\ntext here", 'file.rdoc')).to eq :text
116
- end
117
-
118
- it "returns the default markup type if no shebang is found or no valid ext is found" do
119
- allow(self).to receive(:options).and_return(Options.new.update(:markup => :default_type))
120
- expect(markup_for_file('', 'filename')).to eq :default_type
121
- end
122
-
123
- it "looks for a file extension if no shebang is found" do
124
- expect(markup_for_file('', 'filename.MD')).to eq :markdown
125
- expect(markup_for_file('', 'filename.ORG')).to eq :org
126
- end
127
-
128
- Templates::Helpers::MarkupHelper::MARKUP_EXTENSIONS.each do |type, exts|
129
- exts.each do |ext|
130
- it "recognizes .#{ext} as #{type} markup type" do
131
- expect(markup_for_file('', "filename.#{ext}")).to eq type
132
- end
133
- end
134
- end
135
- end
136
- end
1
+ # frozen_string_literal: true
2
+
3
+ module YARD::Templates::Helpers::MarkupHelper
4
+ public :load_markup_provider, :markup_class, :markup_provider
5
+ end
6
+
7
+ class GeneratorMock
8
+ attr_accessor :options
9
+ include YARD::Templates::Helpers::MarkupHelper
10
+ def initialize(options = Templates::TemplateOptions.new)
11
+ self.options = options
12
+ end
13
+ end
14
+
15
+ RSpec.describe YARD::Templates::Helpers::MarkupHelper do
16
+ before do
17
+ YARD::Templates::Helpers::MarkupHelper.clear_markup_cache
18
+ end
19
+
20
+ describe "#load_markup_provider" do
21
+ before do
22
+ allow(log).to receive(:error)
23
+ @gen = GeneratorMock.new
24
+ @gen.options.reset_defaults
25
+ end
26
+
27
+ it "exits on an invalid markup type" do
28
+ @gen.options.markup = :invalid
29
+ expect(@gen.load_markup_provider).to be false
30
+ end
31
+
32
+ it "fails when an invalid markup provider is specified" do
33
+ @gen.options.update(:markup => :markdown, :markup_provider => :invalid)
34
+ expect(@gen.load_markup_provider).to be false
35
+ expect(@gen.markup_class).to eq nil
36
+ end
37
+
38
+ it "loads RDocMarkup if rdoc is specified and it is installed" do
39
+ @gen.options.markup = :rdoc
40
+ expect(@gen.load_markup_provider).to be true
41
+ expect(@gen.markup_class).to eq YARD::Templates::Helpers::Markup::RDocMarkup
42
+ end
43
+
44
+ it "fails if RDoc cannot be loaded" do
45
+ @gen.options.markup = :rdoc
46
+ expect(@gen).to receive(:eval).with('::YARD::Templates::Helpers::Markup::RDocMarkup').and_raise(NameError)
47
+ expect(@gen.load_markup_provider).to be false
48
+ expect(@gen.markup_provider).to eq nil
49
+ end
50
+
51
+ it "searches through available markup providers for the markup type if none is set" do
52
+ expect(@gen).to receive(:eval).with('::RedcarpetCompat').and_return(double(:bluecloth))
53
+ expect(@gen).to receive(:require).with('redcarpet').and_return(true)
54
+ expect(@gen).not_to receive(:require).with('maruku')
55
+ @gen.options.markup = :markdown
56
+ # this only raises an exception because we mock out require to avoid
57
+ # loading any libraries but our implementation tries to return the library
58
+ # name as a constant
59
+ expect(@gen.load_markup_provider).to be true
60
+ expect(@gen.markup_provider).to eq :redcarpet
61
+ end
62
+
63
+ it "continues searching if some of the providers are unavailable" do
64
+ expect(@gen).to receive(:require).with('redcarpet').and_raise(LoadError)
65
+ expect(@gen).to receive(:require).with('rdiscount').and_raise(LoadError)
66
+ expect(@gen).to receive(:require).with('kramdown').and_raise(LoadError)
67
+ expect(@gen).to receive(:require).with('bluecloth').and_raise(LoadError)
68
+ expect(@gen).to receive(:require).with('maruku').and_raise(LoadError)
69
+ expect(@gen).to receive(:require).with('rpeg-markdown').and_return(true)
70
+ expect(@gen).to receive(:eval).with('::PEGMarkdown').and_return(true)
71
+ @gen.options.markup = :markdown
72
+ # this only raises an exception because we mock out require to avoid
73
+ # loading any libraries but our implementation tries to return the library
74
+ # name as a constant
75
+ @gen.load_markup_provider
76
+ expect(@gen.markup_provider).to eq :"rpeg-markdown"
77
+ end
78
+
79
+ it "overrides the search if `:markup_provider` is set in options" do
80
+ expect(@gen).to receive(:require).with('rdiscount').and_return(true)
81
+ expect(@gen).to receive(:eval).with('::RDiscount').and_return(true)
82
+ @gen.options.update(:markup => :markdown, :markup_provider => :rdiscount)
83
+ @gen.load_markup_provider
84
+ expect(@gen.markup_provider).to eq :rdiscount
85
+ end
86
+
87
+ it "fails if no provider is found" do
88
+ YARD::Templates::Helpers::MarkupHelper::MARKUP_PROVIDERS[:markdown].each do |p|
89
+ expect(@gen).to receive(:require).with(p[:lib].to_s).and_raise(LoadError)
90
+ end
91
+ @gen.options.markup = :markdown
92
+ expect(@gen.load_markup_provider).to be false
93
+ expect(@gen.markup_provider).to eq nil
94
+ end
95
+
96
+ it "fails if overridden provider is not found" do
97
+ expect(@gen).to receive(:require).with('rdiscount').and_raise(LoadError)
98
+ @gen.options.update(:markup => :markdown, :markup_provider => :rdiscount)
99
+ expect(@gen.load_markup_provider).to be false
100
+ expect(@gen.markup_provider).to eq nil
101
+ end
102
+
103
+ it "fails if the markup type is not found" do
104
+ expect(log).to receive(:error).with(/Invalid markup/)
105
+ @gen.options.markup = :xxx
106
+ expect(@gen.load_markup_provider).to be false
107
+ expect(@gen.markup_provider).to eq nil
108
+ end
109
+ end
110
+
111
+ describe "#markup_for_file" do
112
+ include YARD::Templates::Helpers::MarkupHelper
113
+
114
+ it "looks for a shebang line" do
115
+ expect(markup_for_file("#!text\ntext here", 'file.rdoc')).to eq :text
116
+ end
117
+
118
+ it "returns the default markup type if no shebang is found or no valid ext is found" do
119
+ allow(self).to receive(:options).and_return(Options.new.update(:markup => :default_type))
120
+ expect(markup_for_file('', 'filename')).to eq :default_type
121
+ end
122
+
123
+ it "looks for a file extension if no shebang is found" do
124
+ expect(markup_for_file('', 'filename.MD')).to eq :markdown
125
+ expect(markup_for_file('', 'filename.ORG')).to eq :org
126
+ end
127
+
128
+ Templates::Helpers::MarkupHelper::MARKUP_EXTENSIONS.each do |type, exts|
129
+ exts.each do |ext|
130
+ it "recognizes .#{ext} as #{type} markup type" do
131
+ expect(markup_for_file('', "filename.#{ext}")).to eq type
132
+ end
133
+ end
134
+ end
135
+ end
136
+ end