deg-yard 0.8.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. data/.travis.yml +39 -0
  2. data/.yardopts +25 -0
  3. data/.yardopts_guide +19 -0
  4. data/.yardopts_i18n +22 -0
  5. data/Gemfile +35 -0
  6. data/LEGAL +66 -0
  7. data/LICENSE +22 -0
  8. data/README.md +609 -0
  9. data/Rakefile +66 -0
  10. data/benchmarks/builtins_vs_eval.rb +23 -0
  11. data/benchmarks/concat_vs_join.rb +12 -0
  12. data/benchmarks/erb_vs_erubis.rb +53 -0
  13. data/benchmarks/format_args.rb +46 -0
  14. data/benchmarks/generation.rb +37 -0
  15. data/benchmarks/marshal_vs_dbm.rb +63 -0
  16. data/benchmarks/parsing.rb +46 -0
  17. data/benchmarks/pathname_vs_string.rb +50 -0
  18. data/benchmarks/rdoc_vs_yardoc.rb +10 -0
  19. data/benchmarks/registry_store_types.rb +48 -0
  20. data/benchmarks/ri_vs_yri.rb +18 -0
  21. data/benchmarks/ripper_parser.rb +12 -0
  22. data/benchmarks/splat_vs_flatten.rb +12 -0
  23. data/benchmarks/template_erb.rb +22 -0
  24. data/benchmarks/template_format.rb +6 -0
  25. data/benchmarks/template_profile.rb +17 -0
  26. data/benchmarks/yri_cache.rb +19 -0
  27. data/bin/yard +12 -0
  28. data/bin/yardoc +12 -0
  29. data/bin/yri +12 -0
  30. data/docs/CodeObjects.md +115 -0
  31. data/docs/GettingStarted.md +592 -0
  32. data/docs/Handlers.md +152 -0
  33. data/docs/Overview.md +61 -0
  34. data/docs/Parser.md +191 -0
  35. data/docs/Tags.md +282 -0
  36. data/docs/TagsArch.md +123 -0
  37. data/docs/Templates.md +496 -0
  38. data/docs/WhatsNew.md +1244 -0
  39. data/docs/images/code-objects-class-diagram.png +0 -0
  40. data/docs/images/handlers-class-diagram.png +0 -0
  41. data/docs/images/overview-class-diagram.png +0 -0
  42. data/docs/images/parser-class-diagram.png +0 -0
  43. data/docs/images/tags-class-diagram.png +0 -0
  44. data/docs/templates/default/fulldoc/html/full_list_tag.erb +7 -0
  45. data/docs/templates/default/fulldoc/html/setup.rb +6 -0
  46. data/docs/templates/default/layout/html/setup.rb +8 -0
  47. data/docs/templates/default/layout/html/tag_list.erb +11 -0
  48. data/docs/templates/default/yard_tags/html/list.erb +18 -0
  49. data/docs/templates/default/yard_tags/html/setup.rb +27 -0
  50. data/docs/templates/plugin.rb +65 -0
  51. data/lib/rubygems_plugin.rb +4 -0
  52. data/lib/yard/autoload.rb +290 -0
  53. data/lib/yard/cli/command.rb +84 -0
  54. data/lib/yard/cli/command_parser.rb +92 -0
  55. data/lib/yard/cli/config.rb +136 -0
  56. data/lib/yard/cli/diff.rb +270 -0
  57. data/lib/yard/cli/display.rb +68 -0
  58. data/lib/yard/cli/gems.rb +83 -0
  59. data/lib/yard/cli/graph.rb +126 -0
  60. data/lib/yard/cli/help.rb +18 -0
  61. data/lib/yard/cli/i18n.rb +69 -0
  62. data/lib/yard/cli/list.rb +22 -0
  63. data/lib/yard/cli/markup_types.rb +33 -0
  64. data/lib/yard/cli/server.rb +253 -0
  65. data/lib/yard/cli/stats.rb +213 -0
  66. data/lib/yard/cli/yardoc.rb +752 -0
  67. data/lib/yard/cli/yardopts_command.rb +109 -0
  68. data/lib/yard/cli/yri.rb +214 -0
  69. data/lib/yard/code_objects/base.rb +585 -0
  70. data/lib/yard/code_objects/class_object.rb +143 -0
  71. data/lib/yard/code_objects/class_variable_object.rb +8 -0
  72. data/lib/yard/code_objects/constant_object.rb +13 -0
  73. data/lib/yard/code_objects/extended_method_object.rb +23 -0
  74. data/lib/yard/code_objects/extra_file_object.rb +128 -0
  75. data/lib/yard/code_objects/macro_object.rb +172 -0
  76. data/lib/yard/code_objects/method_object.rb +191 -0
  77. data/lib/yard/code_objects/module_object.rb +18 -0
  78. data/lib/yard/code_objects/namespace_object.rb +200 -0
  79. data/lib/yard/code_objects/proxy.rb +258 -0
  80. data/lib/yard/code_objects/root_object.rb +17 -0
  81. data/lib/yard/config.rb +269 -0
  82. data/lib/yard/core_ext/array.rb +15 -0
  83. data/lib/yard/core_ext/file.rb +65 -0
  84. data/lib/yard/core_ext/hash.rb +15 -0
  85. data/lib/yard/core_ext/insertion.rb +60 -0
  86. data/lib/yard/core_ext/module.rb +19 -0
  87. data/lib/yard/core_ext/string.rb +67 -0
  88. data/lib/yard/core_ext/symbol_hash.rb +73 -0
  89. data/lib/yard/docstring.rb +362 -0
  90. data/lib/yard/docstring_parser.rb +321 -0
  91. data/lib/yard/globals.rb +18 -0
  92. data/lib/yard/handlers/base.rb +597 -0
  93. data/lib/yard/handlers/c/alias_handler.rb +15 -0
  94. data/lib/yard/handlers/c/attribute_handler.rb +13 -0
  95. data/lib/yard/handlers/c/base.rb +110 -0
  96. data/lib/yard/handlers/c/class_handler.rb +26 -0
  97. data/lib/yard/handlers/c/constant_handler.rb +12 -0
  98. data/lib/yard/handlers/c/handler_methods.rb +166 -0
  99. data/lib/yard/handlers/c/init_handler.rb +18 -0
  100. data/lib/yard/handlers/c/method_handler.rb +35 -0
  101. data/lib/yard/handlers/c/mixin_handler.rb +13 -0
  102. data/lib/yard/handlers/c/module_handler.rb +16 -0
  103. data/lib/yard/handlers/c/override_comment_handler.rb +30 -0
  104. data/lib/yard/handlers/c/path_handler.rb +10 -0
  105. data/lib/yard/handlers/c/struct_handler.rb +12 -0
  106. data/lib/yard/handlers/c/symbol_handler.rb +7 -0
  107. data/lib/yard/handlers/processor.rb +201 -0
  108. data/lib/yard/handlers/ruby/alias_handler.rb +41 -0
  109. data/lib/yard/handlers/ruby/attribute_handler.rb +82 -0
  110. data/lib/yard/handlers/ruby/base.rb +164 -0
  111. data/lib/yard/handlers/ruby/class_condition_handler.rb +86 -0
  112. data/lib/yard/handlers/ruby/class_handler.rb +121 -0
  113. data/lib/yard/handlers/ruby/class_variable_handler.rb +16 -0
  114. data/lib/yard/handlers/ruby/comment_handler.rb +9 -0
  115. data/lib/yard/handlers/ruby/constant_handler.rb +45 -0
  116. data/lib/yard/handlers/ruby/dsl_handler.rb +14 -0
  117. data/lib/yard/handlers/ruby/dsl_handler_methods.rb +77 -0
  118. data/lib/yard/handlers/ruby/exception_handler.rb +26 -0
  119. data/lib/yard/handlers/ruby/extend_handler.rb +21 -0
  120. data/lib/yard/handlers/ruby/legacy/alias_handler.rb +34 -0
  121. data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +60 -0
  122. data/lib/yard/handlers/ruby/legacy/base.rb +250 -0
  123. data/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +83 -0
  124. data/lib/yard/handlers/ruby/legacy/class_handler.rb +111 -0
  125. data/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +14 -0
  126. data/lib/yard/handlers/ruby/legacy/comment_handler.rb +9 -0
  127. data/lib/yard/handlers/ruby/legacy/constant_handler.rb +28 -0
  128. data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +16 -0
  129. data/lib/yard/handlers/ruby/legacy/exception_handler.rb +12 -0
  130. data/lib/yard/handlers/ruby/legacy/extend_handler.rb +20 -0
  131. data/lib/yard/handlers/ruby/legacy/method_handler.rb +85 -0
  132. data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +39 -0
  133. data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +18 -0
  134. data/lib/yard/handlers/ruby/legacy/module_handler.rb +11 -0
  135. data/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +21 -0
  136. data/lib/yard/handlers/ruby/legacy/visibility_handler.rb +16 -0
  137. data/lib/yard/handlers/ruby/legacy/yield_handler.rb +28 -0
  138. data/lib/yard/handlers/ruby/method_condition_handler.rb +8 -0
  139. data/lib/yard/handlers/ruby/method_handler.rb +92 -0
  140. data/lib/yard/handlers/ruby/mixin_handler.rb +36 -0
  141. data/lib/yard/handlers/ruby/module_function_handler.rb +26 -0
  142. data/lib/yard/handlers/ruby/module_handler.rb +11 -0
  143. data/lib/yard/handlers/ruby/private_constant_handler.rb +36 -0
  144. data/lib/yard/handlers/ruby/struct_handler_methods.rb +141 -0
  145. data/lib/yard/handlers/ruby/visibility_handler.rb +24 -0
  146. data/lib/yard/handlers/ruby/yield_handler.rb +30 -0
  147. data/lib/yard/i18n/locale.rb +74 -0
  148. data/lib/yard/i18n/message.rb +56 -0
  149. data/lib/yard/i18n/messages.rb +55 -0
  150. data/lib/yard/i18n/pot_generator.rb +280 -0
  151. data/lib/yard/i18n/text.rb +173 -0
  152. data/lib/yard/logging.rb +190 -0
  153. data/lib/yard/options.rb +216 -0
  154. data/lib/yard/parser/base.rb +56 -0
  155. data/lib/yard/parser/c/c_parser.rb +231 -0
  156. data/lib/yard/parser/c/comment_parser.rb +131 -0
  157. data/lib/yard/parser/c/statement.rb +63 -0
  158. data/lib/yard/parser/ruby/ast_node.rb +496 -0
  159. data/lib/yard/parser/ruby/legacy/ruby_lex.rb +1378 -0
  160. data/lib/yard/parser/ruby/legacy/ruby_parser.rb +31 -0
  161. data/lib/yard/parser/ruby/legacy/statement.rb +65 -0
  162. data/lib/yard/parser/ruby/legacy/statement_list.rb +384 -0
  163. data/lib/yard/parser/ruby/legacy/token_list.rb +71 -0
  164. data/lib/yard/parser/ruby/ruby_parser.rb +625 -0
  165. data/lib/yard/parser/source_parser.rb +517 -0
  166. data/lib/yard/rake/yardoc_task.rb +74 -0
  167. data/lib/yard/registry.rb +438 -0
  168. data/lib/yard/registry_store.rb +319 -0
  169. data/lib/yard/rubygems/backports/LICENSE.txt +57 -0
  170. data/lib/yard/rubygems/backports/MIT.txt +20 -0
  171. data/lib/yard/rubygems/backports/gem.rb +9 -0
  172. data/lib/yard/rubygems/backports/source_index.rb +370 -0
  173. data/lib/yard/rubygems/backports.rb +8 -0
  174. data/lib/yard/rubygems/doc_manager.rb +88 -0
  175. data/lib/yard/rubygems/specification.rb +41 -0
  176. data/lib/yard/serializers/base.rb +80 -0
  177. data/lib/yard/serializers/file_system_serializer.rb +90 -0
  178. data/lib/yard/serializers/process_serializer.rb +24 -0
  179. data/lib/yard/serializers/stdout_serializer.rb +32 -0
  180. data/lib/yard/serializers/yardoc_serializer.rb +124 -0
  181. data/lib/yard/server/adapter.rb +100 -0
  182. data/lib/yard/server/commands/base.rb +192 -0
  183. data/lib/yard/server/commands/display_file_command.rb +24 -0
  184. data/lib/yard/server/commands/display_object_command.rb +58 -0
  185. data/lib/yard/server/commands/frames_command.rb +15 -0
  186. data/lib/yard/server/commands/library_command.rb +148 -0
  187. data/lib/yard/server/commands/library_index_command.rb +24 -0
  188. data/lib/yard/server/commands/list_command.rb +24 -0
  189. data/lib/yard/server/commands/search_command.rb +78 -0
  190. data/lib/yard/server/commands/static_file_command.rb +57 -0
  191. data/lib/yard/server/doc_server_helper.rb +76 -0
  192. data/lib/yard/server/doc_server_serializer.rb +33 -0
  193. data/lib/yard/server/library_version.rb +227 -0
  194. data/lib/yard/server/rack_adapter.rb +88 -0
  195. data/lib/yard/server/router.rb +176 -0
  196. data/lib/yard/server/static_caching.rb +45 -0
  197. data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +78 -0
  198. data/lib/yard/server/templates/default/fulldoc/html/images/processing.gif +0 -0
  199. data/lib/yard/server/templates/default/fulldoc/html/js/autocomplete.js +12 -0
  200. data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +46 -0
  201. data/lib/yard/server/templates/default/layout/html/script_setup.erb +8 -0
  202. data/lib/yard/server/templates/default/layout/html/setup.rb +7 -0
  203. data/lib/yard/server/templates/default/method_details/html/permalink.erb +4 -0
  204. data/lib/yard/server/templates/default/method_details/html/setup.rb +4 -0
  205. data/lib/yard/server/templates/doc_server/library_list/html/contents.erb +13 -0
  206. data/lib/yard/server/templates/doc_server/library_list/html/headers.erb +26 -0
  207. data/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +12 -0
  208. data/lib/yard/server/templates/doc_server/library_list/html/setup.rb +3 -0
  209. data/lib/yard/server/templates/doc_server/library_list/html/title.erb +2 -0
  210. data/lib/yard/server/templates/doc_server/processing/html/processing.erb +51 -0
  211. data/lib/yard/server/templates/doc_server/processing/html/setup.rb +3 -0
  212. data/lib/yard/server/templates/doc_server/search/html/search.erb +18 -0
  213. data/lib/yard/server/templates/doc_server/search/html/setup.rb +8 -0
  214. data/lib/yard/server/webrick_adapter.rb +43 -0
  215. data/lib/yard/server.rb +11 -0
  216. data/lib/yard/tags/default_factory.rb +176 -0
  217. data/lib/yard/tags/default_tag.rb +12 -0
  218. data/lib/yard/tags/directives.rb +599 -0
  219. data/lib/yard/tags/library.rb +630 -0
  220. data/lib/yard/tags/option_tag.rb +12 -0
  221. data/lib/yard/tags/overload_tag.rb +66 -0
  222. data/lib/yard/tags/ref_tag.rb +7 -0
  223. data/lib/yard/tags/ref_tag_list.rb +27 -0
  224. data/lib/yard/tags/tag.rb +57 -0
  225. data/lib/yard/tags/tag_format_error.rb +6 -0
  226. data/lib/yard/templates/engine.rb +185 -0
  227. data/lib/yard/templates/erb_cache.rb +22 -0
  228. data/lib/yard/templates/helpers/base_helper.rb +212 -0
  229. data/lib/yard/templates/helpers/filter_helper.rb +26 -0
  230. data/lib/yard/templates/helpers/html_helper.rb +599 -0
  231. data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +59 -0
  232. data/lib/yard/templates/helpers/markup/rdoc_markdown.rb +22 -0
  233. data/lib/yard/templates/helpers/markup/rdoc_markup.rb +106 -0
  234. data/lib/yard/templates/helpers/markup_helper.rb +169 -0
  235. data/lib/yard/templates/helpers/method_helper.rb +74 -0
  236. data/lib/yard/templates/helpers/module_helper.rb +19 -0
  237. data/lib/yard/templates/helpers/text_helper.rb +95 -0
  238. data/lib/yard/templates/helpers/uml_helper.rb +46 -0
  239. data/lib/yard/templates/section.rb +106 -0
  240. data/lib/yard/templates/template.rb +407 -0
  241. data/lib/yard/templates/template_options.rb +88 -0
  242. data/lib/yard/verifier.rb +148 -0
  243. data/lib/yard/version.rb +3 -0
  244. data/lib/yard.rb +71 -0
  245. data/po/ja.po +31118 -0
  246. data/spec/cli/command_parser_spec.rb +43 -0
  247. data/spec/cli/command_spec.rb +36 -0
  248. data/spec/cli/config_spec.rb +92 -0
  249. data/spec/cli/diff_spec.rb +260 -0
  250. data/spec/cli/display_spec.rb +30 -0
  251. data/spec/cli/gems_spec.rb +81 -0
  252. data/spec/cli/graph_spec.rb +17 -0
  253. data/spec/cli/help_spec.rb +22 -0
  254. data/spec/cli/i18n_spec.rb +111 -0
  255. data/spec/cli/list_spec.rb +8 -0
  256. data/spec/cli/markup_types_spec.rb +22 -0
  257. data/spec/cli/server_spec.rb +327 -0
  258. data/spec/cli/stats_spec.rb +90 -0
  259. data/spec/cli/yardoc_spec.rb +804 -0
  260. data/spec/cli/yri_spec.rb +99 -0
  261. data/spec/code_objects/base_spec.rb +438 -0
  262. data/spec/code_objects/class_object_spec.rb +225 -0
  263. data/spec/code_objects/code_object_list_spec.rb +33 -0
  264. data/spec/code_objects/constants_spec.rb +82 -0
  265. data/spec/code_objects/extra_file_object_spec.rb +147 -0
  266. data/spec/code_objects/macro_object_spec.rb +148 -0
  267. data/spec/code_objects/method_object_spec.rb +175 -0
  268. data/spec/code_objects/module_object_spec.rb +141 -0
  269. data/spec/code_objects/namespace_object_spec.rb +170 -0
  270. data/spec/code_objects/proxy_spec.rb +140 -0
  271. data/spec/code_objects/spec_helper.rb +3 -0
  272. data/spec/config_spec.rb +176 -0
  273. data/spec/core_ext/array_spec.rb +14 -0
  274. data/spec/core_ext/file_spec.rb +68 -0
  275. data/spec/core_ext/hash_spec.rb +14 -0
  276. data/spec/core_ext/insertion_spec.rb +37 -0
  277. data/spec/core_ext/module_spec.rb +15 -0
  278. data/spec/core_ext/string_spec.rb +42 -0
  279. data/spec/core_ext/symbol_hash_spec.rb +86 -0
  280. data/spec/docstring_parser_spec.rb +228 -0
  281. data/spec/docstring_spec.rb +335 -0
  282. data/spec/handlers/alias_handler_spec.rb +80 -0
  283. data/spec/handlers/attribute_handler_spec.rb +94 -0
  284. data/spec/handlers/base_spec.rb +206 -0
  285. data/spec/handlers/c/alias_handler_spec.rb +33 -0
  286. data/spec/handlers/c/attribute_handler_spec.rb +40 -0
  287. data/spec/handlers/c/class_handler_spec.rb +63 -0
  288. data/spec/handlers/c/constant_handler_spec.rb +68 -0
  289. data/spec/handlers/c/init_handler_spec.rb +47 -0
  290. data/spec/handlers/c/method_handler_spec.rb +229 -0
  291. data/spec/handlers/c/mixin_handler_spec.rb +27 -0
  292. data/spec/handlers/c/module_handler_spec.rb +38 -0
  293. data/spec/handlers/c/override_comment_handler_spec.rb +46 -0
  294. data/spec/handlers/c/path_handler_spec.rb +35 -0
  295. data/spec/handlers/c/spec_helper.rb +13 -0
  296. data/spec/handlers/c/struct_handler_spec.rb +15 -0
  297. data/spec/handlers/class_condition_handler_spec.rb +67 -0
  298. data/spec/handlers/class_handler_spec.rb +246 -0
  299. data/spec/handlers/class_variable_handler_spec.rb +11 -0
  300. data/spec/handlers/constant_handler_spec.rb +64 -0
  301. data/spec/handlers/dsl_handler_spec.rb +197 -0
  302. data/spec/handlers/examples/alias_handler_001.rb.txt +44 -0
  303. data/spec/handlers/examples/attribute_handler_001.rb.txt +32 -0
  304. data/spec/handlers/examples/class_condition_handler_001.rb.txt +69 -0
  305. data/spec/handlers/examples/class_handler_001.rb.txt +120 -0
  306. data/spec/handlers/examples/class_variable_handler_001.rb.txt +10 -0
  307. data/spec/handlers/examples/constant_handler_001.rb.txt +25 -0
  308. data/spec/handlers/examples/dsl_handler_001.rb.txt +125 -0
  309. data/spec/handlers/examples/exception_handler_001.rb.txt +59 -0
  310. data/spec/handlers/examples/extend_handler_001.rb.txt +16 -0
  311. data/spec/handlers/examples/method_condition_handler_001.rb.txt +10 -0
  312. data/spec/handlers/examples/method_handler_001.rb.txt +126 -0
  313. data/spec/handlers/examples/mixin_handler_001.rb.txt +37 -0
  314. data/spec/handlers/examples/module_handler_001.rb.txt +29 -0
  315. data/spec/handlers/examples/private_constant_handler_001.rb.txt +8 -0
  316. data/spec/handlers/examples/process_handler_001.rb.txt +11 -0
  317. data/spec/handlers/examples/visibility_handler_001.rb.txt +32 -0
  318. data/spec/handlers/examples/yield_handler_001.rb.txt +54 -0
  319. data/spec/handlers/exception_handler_spec.rb +48 -0
  320. data/spec/handlers/extend_handler_spec.rb +23 -0
  321. data/spec/handlers/legacy_base_spec.rb +128 -0
  322. data/spec/handlers/method_condition_handler_spec.rb +14 -0
  323. data/spec/handlers/method_handler_spec.rb +184 -0
  324. data/spec/handlers/mixin_handler_spec.rb +55 -0
  325. data/spec/handlers/module_function_handler_spec.rb +105 -0
  326. data/spec/handlers/module_handler_spec.rb +34 -0
  327. data/spec/handlers/private_constant_handler_spec.rb +24 -0
  328. data/spec/handlers/processor_spec.rb +34 -0
  329. data/spec/handlers/ruby/base_spec.rb +94 -0
  330. data/spec/handlers/ruby/legacy/base_spec.rb +82 -0
  331. data/spec/handlers/spec_helper.rb +33 -0
  332. data/spec/handlers/visibility_handler_spec.rb +39 -0
  333. data/spec/handlers/yield_handler_spec.rb +51 -0
  334. data/spec/i18n/locale_spec.rb +68 -0
  335. data/spec/i18n/message_spec.rb +52 -0
  336. data/spec/i18n/messages_spec.rb +67 -0
  337. data/spec/i18n/pot_generator_spec.rb +262 -0
  338. data/spec/i18n/text_spec.rb +180 -0
  339. data/spec/logging_spec.rb +35 -0
  340. data/spec/options_spec.rb +171 -0
  341. data/spec/parser/base_spec.rb +24 -0
  342. data/spec/parser/c_parser_spec.rb +171 -0
  343. data/spec/parser/examples/array.c.txt +3887 -0
  344. data/spec/parser/examples/example1.rb.txt +8 -0
  345. data/spec/parser/examples/extrafile.c.txt +8 -0
  346. data/spec/parser/examples/multifile.c.txt +22 -0
  347. data/spec/parser/examples/override.c.txt +424 -0
  348. data/spec/parser/examples/parse_in_order_001.rb.txt +2 -0
  349. data/spec/parser/examples/parse_in_order_002.rb.txt +2 -0
  350. data/spec/parser/examples/tag_handler_001.rb.txt +8 -0
  351. data/spec/parser/ruby/ast_node_spec.rb +33 -0
  352. data/spec/parser/ruby/legacy/statement_list_spec.rb +299 -0
  353. data/spec/parser/ruby/legacy/token_list_spec.rb +77 -0
  354. data/spec/parser/ruby/ruby_parser_spec.rb +334 -0
  355. data/spec/parser/source_parser_spec.rb +717 -0
  356. data/spec/parser/tag_parsing_spec.rb +18 -0
  357. data/spec/rake/yardoc_task_spec.rb +101 -0
  358. data/spec/registry_spec.rb +393 -0
  359. data/spec/registry_store_spec.rb +315 -0
  360. data/spec/rubygems/doc_manager_spec.rb +112 -0
  361. data/spec/serializers/data/serialized_yardoc/checksums +1 -0
  362. data/spec/serializers/data/serialized_yardoc/objects/Foo/bar_i.dat +0 -0
  363. data/spec/serializers/data/serialized_yardoc/objects/Foo/baz_i.dat +0 -0
  364. data/spec/serializers/data/serialized_yardoc/objects/Foo.dat +0 -0
  365. data/spec/serializers/data/serialized_yardoc/objects/root.dat +0 -0
  366. data/spec/serializers/data/serialized_yardoc/proxy_types +2 -0
  367. data/spec/serializers/file_system_serializer_spec.rb +124 -0
  368. data/spec/serializers/spec_helper.rb +2 -0
  369. data/spec/serializers/yardoc_serializer_spec.rb +46 -0
  370. data/spec/server/adapter_spec.rb +38 -0
  371. data/spec/server/commands/base_spec.rb +87 -0
  372. data/spec/server/commands/library_command_spec.rb +39 -0
  373. data/spec/server/commands/static_file_command_spec.rb +84 -0
  374. data/spec/server/doc_server_helper_spec.rb +53 -0
  375. data/spec/server/doc_server_serializer_spec.rb +45 -0
  376. data/spec/server/rack_adapter_spec.rb +20 -0
  377. data/spec/server/router_spec.rb +122 -0
  378. data/spec/server/spec_helper.rb +17 -0
  379. data/spec/server/static_caching_spec.rb +39 -0
  380. data/spec/server/webrick_servlet_spec.rb +20 -0
  381. data/spec/server_spec.rb +10 -0
  382. data/spec/spec_helper.rb +128 -0
  383. data/spec/tags/default_factory_spec.rb +152 -0
  384. data/spec/tags/default_tag_spec.rb +11 -0
  385. data/spec/tags/directives_spec.rb +453 -0
  386. data/spec/tags/library_spec.rb +34 -0
  387. data/spec/tags/overload_tag_spec.rb +53 -0
  388. data/spec/tags/ref_tag_list_spec.rb +53 -0
  389. data/spec/templates/class_spec.rb +44 -0
  390. data/spec/templates/constant_spec.rb +40 -0
  391. data/spec/templates/engine_spec.rb +121 -0
  392. data/spec/templates/examples/class001.html +280 -0
  393. data/spec/templates/examples/class001.txt +36 -0
  394. data/spec/templates/examples/class002.html +35 -0
  395. data/spec/templates/examples/constant001.txt +25 -0
  396. data/spec/templates/examples/constant002.txt +7 -0
  397. data/spec/templates/examples/constant003.txt +11 -0
  398. data/spec/templates/examples/method001.html +130 -0
  399. data/spec/templates/examples/method001.txt +35 -0
  400. data/spec/templates/examples/method002.html +86 -0
  401. data/spec/templates/examples/method002.txt +20 -0
  402. data/spec/templates/examples/method003.html +159 -0
  403. data/spec/templates/examples/method003.txt +45 -0
  404. data/spec/templates/examples/method004.html +44 -0
  405. data/spec/templates/examples/method004.txt +10 -0
  406. data/spec/templates/examples/method005.html +99 -0
  407. data/spec/templates/examples/method005.txt +33 -0
  408. data/spec/templates/examples/module001.dot +33 -0
  409. data/spec/templates/examples/module001.html +825 -0
  410. data/spec/templates/examples/module001.txt +33 -0
  411. data/spec/templates/examples/module002.html +318 -0
  412. data/spec/templates/examples/module003.html +185 -0
  413. data/spec/templates/examples/module004.html +387 -0
  414. data/spec/templates/examples/tag001.txt +82 -0
  415. data/spec/templates/helpers/base_helper_spec.rb +175 -0
  416. data/spec/templates/helpers/html_helper_spec.rb +612 -0
  417. data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +48 -0
  418. data/spec/templates/helpers/markup/rdoc_markup_spec.rb +93 -0
  419. data/spec/templates/helpers/markup_helper_spec.rb +135 -0
  420. data/spec/templates/helpers/method_helper_spec.rb +82 -0
  421. data/spec/templates/helpers/shared_signature_examples.rb +123 -0
  422. data/spec/templates/helpers/text_helper_spec.rb +44 -0
  423. data/spec/templates/method_spec.rb +102 -0
  424. data/spec/templates/module_spec.rb +181 -0
  425. data/spec/templates/onefile_spec.rb +64 -0
  426. data/spec/templates/section_spec.rb +146 -0
  427. data/spec/templates/spec_helper.rb +73 -0
  428. data/spec/templates/tag_spec.rb +51 -0
  429. data/spec/templates/template_spec.rb +409 -0
  430. data/spec/verifier_spec.rb +106 -0
  431. data/templates/default/class/dot/setup.rb +6 -0
  432. data/templates/default/class/dot/superklass.erb +3 -0
  433. data/templates/default/class/html/constructor_details.erb +8 -0
  434. data/templates/default/class/html/setup.rb +1 -0
  435. data/templates/default/class/html/subclasses.erb +4 -0
  436. data/templates/default/class/setup.rb +36 -0
  437. data/templates/default/class/text/setup.rb +11 -0
  438. data/templates/default/class/text/subclasses.erb +5 -0
  439. data/templates/default/constant/text/header.erb +11 -0
  440. data/templates/default/constant/text/setup.rb +3 -0
  441. data/templates/default/docstring/html/abstract.erb +4 -0
  442. data/templates/default/docstring/html/deprecated.erb +1 -0
  443. data/templates/default/docstring/html/index.erb +5 -0
  444. data/templates/default/docstring/html/note.erb +6 -0
  445. data/templates/default/docstring/html/private.erb +4 -0
  446. data/templates/default/docstring/html/returns_void.erb +1 -0
  447. data/templates/default/docstring/html/text.erb +1 -0
  448. data/templates/default/docstring/html/todo.erb +6 -0
  449. data/templates/default/docstring/setup.rb +51 -0
  450. data/templates/default/docstring/text/abstract.erb +2 -0
  451. data/templates/default/docstring/text/deprecated.erb +2 -0
  452. data/templates/default/docstring/text/index.erb +2 -0
  453. data/templates/default/docstring/text/note.erb +4 -0
  454. data/templates/default/docstring/text/private.erb +2 -0
  455. data/templates/default/docstring/text/returns_void.erb +1 -0
  456. data/templates/default/docstring/text/text.erb +1 -0
  457. data/templates/default/docstring/text/todo.erb +4 -0
  458. data/templates/default/fulldoc/html/css/common.css +1 -0
  459. data/templates/default/fulldoc/html/css/full_list.css +57 -0
  460. data/templates/default/fulldoc/html/css/style.css +338 -0
  461. data/templates/default/fulldoc/html/frames.erb +28 -0
  462. data/templates/default/fulldoc/html/full_list.erb +40 -0
  463. data/templates/default/fulldoc/html/full_list_class.erb +2 -0
  464. data/templates/default/fulldoc/html/full_list_file.erb +5 -0
  465. data/templates/default/fulldoc/html/full_list_method.erb +8 -0
  466. data/templates/default/fulldoc/html/js/app.js +214 -0
  467. data/templates/default/fulldoc/html/js/full_list.js +178 -0
  468. data/templates/default/fulldoc/html/js/jquery.js +4 -0
  469. data/templates/default/fulldoc/html/setup.rb +199 -0
  470. data/templates/default/layout/dot/header.erb +6 -0
  471. data/templates/default/layout/dot/setup.rb +14 -0
  472. data/templates/default/layout/html/breadcrumb.erb +13 -0
  473. data/templates/default/layout/html/files.erb +11 -0
  474. data/templates/default/layout/html/footer.erb +5 -0
  475. data/templates/default/layout/html/headers.erb +14 -0
  476. data/templates/default/layout/html/index.erb +2 -0
  477. data/templates/default/layout/html/layout.erb +20 -0
  478. data/templates/default/layout/html/listing.erb +4 -0
  479. data/templates/default/layout/html/objects.erb +32 -0
  480. data/templates/default/layout/html/script_setup.erb +5 -0
  481. data/templates/default/layout/html/search.erb +8 -0
  482. data/templates/default/layout/html/setup.rb +71 -0
  483. data/templates/default/method/html/header.erb +16 -0
  484. data/templates/default/method/setup.rb +3 -0
  485. data/templates/default/method/text/header.erb +1 -0
  486. data/templates/default/method_details/html/header.erb +3 -0
  487. data/templates/default/method_details/html/method_signature.erb +25 -0
  488. data/templates/default/method_details/html/source.erb +10 -0
  489. data/templates/default/method_details/setup.rb +10 -0
  490. data/templates/default/method_details/text/header.erb +10 -0
  491. data/templates/default/method_details/text/method_signature.erb +12 -0
  492. data/templates/default/method_details/text/setup.rb +10 -0
  493. data/templates/default/module/dot/child.erb +1 -0
  494. data/templates/default/module/dot/dependencies.erb +3 -0
  495. data/templates/default/module/dot/header.erb +6 -0
  496. data/templates/default/module/dot/info.erb +14 -0
  497. data/templates/default/module/dot/setup.rb +14 -0
  498. data/templates/default/module/html/attribute_details.erb +10 -0
  499. data/templates/default/module/html/attribute_summary.erb +8 -0
  500. data/templates/default/module/html/box_info.erb +37 -0
  501. data/templates/default/module/html/children.erb +8 -0
  502. data/templates/default/module/html/constant_summary.erb +13 -0
  503. data/templates/default/module/html/defines.erb +3 -0
  504. data/templates/default/module/html/header.erb +5 -0
  505. data/templates/default/module/html/inherited_attributes.erb +14 -0
  506. data/templates/default/module/html/inherited_constants.erb +8 -0
  507. data/templates/default/module/html/inherited_methods.erb +19 -0
  508. data/templates/default/module/html/item_summary.erb +40 -0
  509. data/templates/default/module/html/method_details_list.erb +9 -0
  510. data/templates/default/module/html/method_summary.erb +14 -0
  511. data/templates/default/module/html/methodmissing.erb +12 -0
  512. data/templates/default/module/html/pre_docstring.erb +1 -0
  513. data/templates/default/module/setup.rb +164 -0
  514. data/templates/default/module/text/children.erb +10 -0
  515. data/templates/default/module/text/class_meths_list.erb +8 -0
  516. data/templates/default/module/text/extends.erb +8 -0
  517. data/templates/default/module/text/header.erb +7 -0
  518. data/templates/default/module/text/includes.erb +8 -0
  519. data/templates/default/module/text/instance_meths_list.erb +8 -0
  520. data/templates/default/module/text/setup.rb +12 -0
  521. data/templates/default/onefile/html/files.erb +5 -0
  522. data/templates/default/onefile/html/headers.erb +6 -0
  523. data/templates/default/onefile/html/layout.erb +17 -0
  524. data/templates/default/onefile/html/readme.erb +3 -0
  525. data/templates/default/onefile/html/setup.rb +61 -0
  526. data/templates/default/root/dot/child.erb +3 -0
  527. data/templates/default/root/dot/setup.rb +5 -0
  528. data/templates/default/root/html/setup.rb +1 -0
  529. data/templates/default/tags/html/example.erb +11 -0
  530. data/templates/default/tags/html/index.erb +3 -0
  531. data/templates/default/tags/html/option.erb +24 -0
  532. data/templates/default/tags/html/overload.erb +14 -0
  533. data/templates/default/tags/html/see.erb +8 -0
  534. data/templates/default/tags/html/tag.erb +20 -0
  535. data/templates/default/tags/setup.rb +55 -0
  536. data/templates/default/tags/text/example.erb +12 -0
  537. data/templates/default/tags/text/index.erb +1 -0
  538. data/templates/default/tags/text/option.erb +20 -0
  539. data/templates/default/tags/text/overload.erb +19 -0
  540. data/templates/default/tags/text/see.erb +11 -0
  541. data/templates/default/tags/text/tag.erb +13 -0
  542. data/templates/guide/class/html/setup.rb +1 -0
  543. data/templates/guide/docstring/html/setup.rb +1 -0
  544. data/templates/guide/fulldoc/html/css/style.css +108 -0
  545. data/templates/guide/fulldoc/html/js/app.js +33 -0
  546. data/templates/guide/fulldoc/html/setup.rb +73 -0
  547. data/templates/guide/layout/html/layout.erb +81 -0
  548. data/templates/guide/layout/html/setup.rb +28 -0
  549. data/templates/guide/method/html/header.erb +18 -0
  550. data/templates/guide/method/html/setup.rb +21 -0
  551. data/templates/guide/module/html/header.erb +7 -0
  552. data/templates/guide/module/html/method_list.erb +5 -0
  553. data/templates/guide/module/html/setup.rb +26 -0
  554. data/templates/guide/onefile/html/files.erb +4 -0
  555. data/templates/guide/onefile/html/setup.rb +5 -0
  556. data/templates/guide/onefile/html/toc.erb +3 -0
  557. data/templates/guide/tags/html/setup.rb +8 -0
  558. metadata +689 -0
@@ -0,0 +1,93 @@
1
+ require File.dirname(__FILE__) + "/../../spec_helper"
2
+
3
+ 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
+ begin
14
+ require 'rdoc/markup'
15
+ require 'rdoc/markup/to_html'
16
+ return :RDoc2
17
+ rescue LoadError
18
+ begin
19
+ require 'rdoc/markup/simple_markup'
20
+ require 'rdoc/markup/simple_markup/to_html'
21
+ return :RDoc1
22
+ rescue LoadError
23
+ raise NameError, "could not load RDocMarkup (rdoc is not installed)"
24
+ end
25
+ end
26
+ end
27
+
28
+ it "should load RDoc2.x if rdoc/markup is present" do
29
+ @good_libs += ['rdoc/markup', 'rdoc/markup/to_html']
30
+ load_markup.should == :RDoc2
31
+ end
32
+
33
+ it "should fail on RDoc2.x if rdoc/markup/to_html is not present" do
34
+ @good_libs += ['rdoc/markup']
35
+ lambda { load_markup }.should raise_error(NameError)
36
+ end
37
+
38
+ it "should load RDoc1.x if RDoc2 fails and rdoc/markup/simple_markup is present" do
39
+ @good_libs += ['rdoc/markup/simple_markup', 'rdoc/markup/simple_markup/to_html']
40
+ load_markup.should == :RDoc1
41
+ end
42
+
43
+ it "should error on loading if neither lib is present" do
44
+ lambda { load_markup }.should raise_error(NameError)
45
+ end
46
+ end
47
+
48
+ describe '#to_html' do
49
+ def to_html(text)
50
+ html = YARD::Templates::Helpers::Markup::RDocMarkup.new(text).to_html
51
+ html.strip.gsub(/\r?\n/, '')
52
+ end
53
+
54
+ it 'handles typewriter text' do
55
+ to_html('Hello +<code>+').should == '<p>Hello <tt>&lt;code&gt;</tt></p>'
56
+ end
57
+ end
58
+
59
+ describe '#fix_typewriter' do
60
+ def fix_typewriter(text)
61
+ YARD::Templates::Helpers::Markup::RDocMarkup.new('').send(:fix_typewriter, text)
62
+ end
63
+
64
+ it "should use #fix_typewriter to convert +text+ to <tt>text</tt>" do
65
+ fix_typewriter("Some +typewriter text &lt;+.").should ==
66
+ "Some <tt>typewriter text &lt;</tt>."
67
+ fix_typewriter("Not +typewriter text.").should ==
68
+ "Not +typewriter text."
69
+ fix_typewriter("Alternating +type writer+ text +here+.").should ==
70
+ "Alternating <tt>type writer</tt> text <tt>here</tt>."
71
+ fix_typewriter("No ++problem.").should ==
72
+ "No ++problem."
73
+ fix_typewriter("Math + stuff +is ok+").should ==
74
+ "Math + stuff <tt>is ok</tt>"
75
+ fix_typewriter("Hello +{Foo}+ World").should == "Hello <tt>{Foo}</tt> World"
76
+ end
77
+
78
+ it "should not apply to code blocks" do
79
+ fix_typewriter("<code>Hello +hello+</code>").should == "<code>Hello +hello+</code>"
80
+ end
81
+
82
+ it "should not apply to HTML tag attributes" do
83
+ fix_typewriter("<a href='http://foo.com/A+b+c'>A+b+c</a>").should ==
84
+ "<a href='http://foo.com/A+b+c'>A+b+c</a>"
85
+ fix_typewriter("<foo class='foo+bar+baz'/>").should ==
86
+ "<foo class='foo+bar+baz'/>"
87
+ end
88
+
89
+ it "should still apply inside of other tags" do
90
+ fix_typewriter("<p>+foo+</p>").should == "<p><tt>foo</tt></p>"
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,135 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
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
+ 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
+ log.stub!(:error)
23
+ @gen = GeneratorMock.new
24
+ @gen.options.reset_defaults
25
+ end
26
+
27
+ it "should exit on an invalid markup type" do
28
+ @gen.options.markup = :invalid
29
+ @gen.load_markup_provider.should == false
30
+ end
31
+
32
+ it "should fail on when an invalid markup provider is specified" do
33
+ @gen.options.update(:markup => :markdown, :markup_provider => :invalid)
34
+ @gen.load_markup_provider.should == false
35
+ @gen.markup_class.should == nil
36
+ end
37
+
38
+ it "should load RDocMarkup if rdoc is specified and it is installed" do
39
+ @gen.options.markup = :rdoc
40
+ @gen.load_markup_provider.should == true
41
+ @gen.markup_class.should == YARD::Templates::Helpers::Markup::RDocMarkup
42
+ end
43
+
44
+ it "should fail if RDoc cannot be loaded" do
45
+ @gen.options.markup = :rdoc
46
+ @gen.should_receive(:eval).with('::YARD::Templates::Helpers::Markup::RDocMarkup').and_raise(NameError)
47
+ @gen.load_markup_provider.should == false
48
+ @gen.markup_provider.should == nil
49
+ end
50
+
51
+ it "should search through available markup providers for the markup type if none is set" do
52
+ @gen.should_receive(:eval).with('::RedcarpetCompat').and_return(mock(:bluecloth))
53
+ @gen.should_receive(:require).with('redcarpet').and_return(true)
54
+ @gen.should_not_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
+ @gen.load_markup_provider.should == true
60
+ @gen.markup_provider.should == :redcarpet
61
+ end
62
+
63
+ it "should continue searching if some of the providers are unavailable" do
64
+ @gen.should_receive(:require).with('redcarpet').and_raise(LoadError)
65
+ @gen.should_receive(:require).with('rdiscount').and_raise(LoadError)
66
+ @gen.should_receive(:require).with('kramdown').and_raise(LoadError)
67
+ @gen.should_receive(:require).with('bluecloth').and_raise(LoadError)
68
+ @gen.should_receive(:require).with('maruku').and_raise(LoadError)
69
+ @gen.should_receive(:require).with('rpeg-markdown').and_return(true)
70
+ @gen.should_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.should rescue nil
76
+ @gen.markup_provider.should == :"rpeg-markdown"
77
+ end
78
+
79
+ it "should override the search if `:markup_provider` is set in options" do
80
+ @gen.should_receive(:require).with('rdiscount').and_return(true)
81
+ @gen.should_receive(:eval).with('::RDiscount').and_return(true)
82
+ @gen.options.update(:markup => :markdown, :markup_provider => :rdiscount)
83
+ @gen.load_markup_provider.should rescue nil
84
+ @gen.markup_provider.should == :rdiscount
85
+ end
86
+
87
+ it "should fail if no provider is found" do
88
+ YARD::Templates::Helpers::MarkupHelper::MARKUP_PROVIDERS[:markdown].each do |p|
89
+ @gen.should_receive(:require).with(p[:lib].to_s).and_raise(LoadError)
90
+ end
91
+ @gen.options.markup = :markdown
92
+ @gen.load_markup_provider.should == false
93
+ @gen.markup_provider.should == nil
94
+ end
95
+
96
+ it "should fail if overridden provider is not found" do
97
+ @gen.should_receive(:require).with('rdiscount').and_raise(LoadError)
98
+ @gen.options.update(:markup => :markdown, :markup_provider => :rdiscount)
99
+ @gen.load_markup_provider.should == false
100
+ @gen.markup_provider.should == nil
101
+ end
102
+
103
+ it "should fail if the markup type is not found" do
104
+ log.should_receive(:error).with(/Invalid markup/)
105
+ @gen.options.markup = :xxx
106
+ @gen.load_markup_provider.should == false
107
+ @gen.markup_provider.should == nil
108
+ end
109
+ end
110
+
111
+ describe '#markup_for_file' do
112
+ include YARD::Templates::Helpers::MarkupHelper
113
+
114
+ it "should look for a shebang line" do
115
+ markup_for_file("#!text\ntext here", 'file.rdoc').should == :text
116
+ end
117
+
118
+ it "should return the default markup type if no shebang is found or no valid ext is found" do
119
+ stub!(:options).and_return(Options.new.update(:markup => :default_type))
120
+ markup_for_file('', 'filename').should == :default_type
121
+ end
122
+
123
+ it "should look for a file extension if no shebang is found" do
124
+ markup_for_file('', 'filename.MD').should == :markdown
125
+ end
126
+
127
+ Templates::Helpers::MarkupHelper::MARKUP_EXTENSIONS.each do |type, exts|
128
+ exts.each do |ext|
129
+ it "should recognize .#{ext} as #{type} markup type" do
130
+ markup_for_file('', "filename.#{ext}").should == type
131
+ end
132
+ end
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,82 @@
1
+ require File.dirname(__FILE__) + "/../spec_helper"
2
+
3
+ describe YARD::Templates::Helpers::MethodHelper do
4
+ include YARD::Templates::Helpers::BaseHelper
5
+ include YARD::Templates::Helpers::MethodHelper
6
+
7
+ describe '#format_args' do
8
+ it "should display keyword arguments" do
9
+ params = [['a:', '1'], ['b:', '2'], ['**kwargs', nil]]
10
+ YARD.parse_string 'def foo; end'
11
+ Registry.at('#foo').stub(:parameters) { params }
12
+ format_args(Registry.at('#foo')).should == '(a: 1, b: 2, **kwargs)'
13
+ end
14
+
15
+ it "should not show &blockarg if no @param tag and has @yield" do
16
+ YARD.parse_string <<-'eof'
17
+ # @yield blah
18
+ def foo(&block); end
19
+ eof
20
+ format_args(Registry.at('#foo')).should == ''
21
+ end
22
+
23
+ it "should not show &blockarg if no @param tag and has @yieldparam" do
24
+ YARD.parse_string <<-'eof'
25
+ # @yieldparam blah test
26
+ def foo(&block); end
27
+ eof
28
+ format_args(Registry.at('#foo')).should == ''
29
+ end
30
+
31
+ it "should show &blockarg if @param block is documented (even with @yield)" do
32
+ YARD.parse_string <<-'eof'
33
+ # @yield [a,b]
34
+ # @yieldparam a test
35
+ # @param block test
36
+ def foo(&block) end
37
+ eof
38
+ format_args(Registry.at('#foo')).should == '(&block)'
39
+ end
40
+ end
41
+
42
+ describe '#format_block' do
43
+ before { YARD::Registry.clear }
44
+
45
+ it "should show block for method with yield" do
46
+ YARD.parse_string <<-'eof'
47
+ def foo; yield(a, b, c) end
48
+ eof
49
+ format_block(Registry.at('#foo')).should == "{|a, b, c| ... }"
50
+ end
51
+
52
+ it "should show block for method with @yieldparam tags" do
53
+ YARD.parse_string <<-'eof'
54
+ # @yieldparam _self me!
55
+ def foo; end
56
+ eof
57
+ format_block(Registry.at('#foo')).should == "{|_self| ... }"
58
+ end
59
+
60
+ it "should show block for method with @yield but no types" do
61
+ YARD.parse_string <<-'eof'
62
+ # @yield blah
63
+ # @yieldparam a
64
+ def foo; end
65
+
66
+ # @yield blah
67
+ def foo2; end
68
+ eof
69
+ format_block(Registry.at('#foo')).should == "{|a| ... }"
70
+ format_block(Registry.at('#foo2')).should == "{ ... }"
71
+ end
72
+
73
+ it "should show block for method with @yield and types" do
74
+ YARD.parse_string <<-'eof'
75
+ # @yield [a, b, c] blah
76
+ # @yieldparam a
77
+ def foo; end
78
+ eof
79
+ format_block(Registry.at('#foo')).should == "{|a, b, c| ... }"
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,123 @@
1
+ shared_examples_for "signature" do
2
+ before do
3
+ YARD::Registry.clear
4
+ @options = Templates::TemplateOptions.new
5
+ @options.reset_defaults
6
+ stub!(:options).and_return(@options)
7
+ end
8
+
9
+ it "should show signature for regular instance method" do
10
+ YARD.parse_string "def foo; end"
11
+ signature(Registry.at('#foo')).should == @results[:regular]
12
+ end
13
+
14
+ it "should allow default return type to be changed" do
15
+ @options.default_return = "Hello"
16
+ YARD.parse_string "def foo; end"
17
+ signature(Registry.at('#foo')).should == @results[:default_return]
18
+ end
19
+
20
+ it "should allow default return type to be omitted" do
21
+ @options.default_return = ""
22
+ YARD.parse_string "def foo; end"
23
+ signature(Registry.at('#foo')).should == @results[:no_default_return]
24
+ end
25
+
26
+ it "should show signature for private class method" do
27
+ YARD.parse_string "class A; private; def self.foo; end end"
28
+ signature(Registry.at('A.foo')).should == @results[:private_class]
29
+ end
30
+
31
+ it "should show return type for single type" do
32
+ YARD.parse_string <<-'eof'
33
+ # @return [String]
34
+ def foo; end
35
+ eof
36
+ signature(Registry.at('#foo')).should == @results[:single]
37
+ end
38
+
39
+ it "should show return type for 2 types" do
40
+ YARD.parse_string <<-'eof'
41
+ # @return [String, Symbol]
42
+ def foo; end
43
+ eof
44
+ signature(Registry.at('#foo')).should == @results[:two_types]
45
+ end
46
+
47
+ it "should show return type for 2 types over multiple tags" do
48
+ YARD.parse_string <<-'eof'
49
+ # @return [String]
50
+ # @return [Symbol]
51
+ def foo; end
52
+ eof
53
+ signature(Registry.at('#foo')).should == @results[:two_types_multitag]
54
+ end
55
+
56
+ it "should show 'Type?' if return types are [Type, nil]" do
57
+ YARD.parse_string <<-'eof'
58
+ # @return [Type, nil]
59
+ def foo; end
60
+ eof
61
+ signature(Registry.at('#foo')).should == @results[:type_nil]
62
+ end
63
+
64
+ it "should show 'Type?' if return types are [Type, nil, nil] (extra nil)" do
65
+ YARD.parse_string <<-'eof'
66
+ # @return [Type, nil]
67
+ # @return [nil]
68
+ def foo; end
69
+ eof
70
+ signature(Registry.at('#foo')).should == @results[:type_nil]
71
+ end
72
+
73
+ it "should show 'Type+' if return types are [Type, Array<Type>]" do
74
+ YARD.parse_string <<-'eof'
75
+ # @return [Type, <Type>]
76
+ def foo; end
77
+ eof
78
+ signature(Registry.at('#foo')).should == @results[:type_array]
79
+ end
80
+
81
+ it "should (Type, ...) for more than 2 return types" do
82
+ YARD.parse_string <<-'eof'
83
+ # @return [Type, <Type>]
84
+ # @return [AnotherType]
85
+ def foo; end
86
+ eof
87
+ signature(Registry.at('#foo')).should == @results[:multitype]
88
+ end
89
+
90
+ it "should show (void) for @return [void] by default" do
91
+ YARD.parse_string <<-'eof'
92
+ # @return [void]
93
+ def foo; end
94
+ eof
95
+ signature(Registry.at('#foo')).should == @results[:void]
96
+ end
97
+
98
+ it "should not show return for @return [void] if :hide_void_return is true" do
99
+ @options.hide_void_return = true
100
+ YARD.parse_string <<-'eof'
101
+ # @return [void]
102
+ def foo; end
103
+ eof
104
+ signature(Registry.at('#foo')).should == @results[:hide_void]
105
+ end
106
+
107
+ it "should show block for method with yield" do
108
+ YARD.parse_string <<-'eof'
109
+ def foo; yield(a, b, c) end
110
+ eof
111
+ signature(Registry.at('#foo')).should == @results[:block]
112
+ end
113
+
114
+ it "should use regular return tag if the @overload is empty" do
115
+ YARD.parse_string <<-'eof'
116
+ # @overload foobar
117
+ # Hello world
118
+ # @return [String]
119
+ def foo; end
120
+ eof
121
+ signature(Registry.at('#foo').tag(:overload)).should == @results[:empty_overload]
122
+ end
123
+ end
@@ -0,0 +1,44 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+ require File.dirname(__FILE__) + "/shared_signature_examples"
3
+
4
+ describe YARD::Templates::Helpers::TextHelper do
5
+ include YARD::Templates::Helpers::TextHelper
6
+ include YARD::Templates::Helpers::MethodHelper
7
+
8
+ describe '#signature' do
9
+ before do
10
+ @results = {
11
+ :regular => "root.foo -> Object",
12
+ :default_return => "root.foo -> Hello",
13
+ :no_default_return => "root.foo",
14
+ :private_class => "A.foo -> Object (private)",
15
+ :single => "root.foo -> String",
16
+ :two_types => "root.foo -> (String, Symbol)",
17
+ :two_types_multitag => "root.foo -> (String, Symbol)",
18
+ :type_nil => "root.foo -> Type?",
19
+ :type_array => "root.foo -> Type+",
20
+ :multitype => "root.foo -> (Type, ...)",
21
+ :void => "root.foo -> void",
22
+ :hide_void => "root.foo",
23
+ :block => "root.foo {|a, b, c| ... } -> Object",
24
+ :empty_overload => 'root.foobar -> String'
25
+ }
26
+ end
27
+
28
+ def signature(obj) super(obj).strip end
29
+
30
+ it_should_behave_like "signature"
31
+ end
32
+
33
+ describe '#align_right' do
34
+ it "should align text right" do
35
+ text = "Method: #some_method (SomeClass)"
36
+ align_right(text).should == ' ' * 40 + text
37
+ end
38
+
39
+ it "should truncate text that is longer than allowed width" do
40
+ text = "(Defined in: /home/user/.rip/.packages/some_gem-2460672e333ac07b9190ade88ec9a91c/long/path.rb)"
41
+ align_right(text).should == ' ' + text[0,68] + '...'
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,102 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ # $COPY = :method001
4
+ # $COPYT = :html
5
+
6
+ describe YARD::Templates::Engine.template(:default, :method) do
7
+ before { Registry.clear }
8
+
9
+ shared_examples_for "all formats" do
10
+ it "should render html format correctly" do
11
+ html_equals(Registry.at('#m').format(html_options), @template)
12
+ end
13
+
14
+ it "should render text format correctly" do
15
+ text_equals(Registry.at('#m').format(text_options), @template)
16
+ end
17
+ end
18
+
19
+ describe 'regular (deprecated) method' do
20
+ before do
21
+ @template = :method001
22
+ YARD.parse_string <<-'eof'
23
+ private
24
+ # Comments
25
+ # @param [Hash] x the x argument
26
+ # @option x [String] :key1 (default) first key
27
+ # @option x [Symbol] :key2 second key
28
+ # @return [String] the result
29
+ # @raise [Exception] hi!
30
+ # @deprecated for great justice
31
+ def m(x) end
32
+ alias x m
33
+ eof
34
+ end
35
+
36
+ it_should_behave_like "all formats"
37
+ end
38
+
39
+ describe 'method with 1 overload' do
40
+ before do
41
+ @template = :method002
42
+ YARD.parse_string <<-'eof'
43
+ private
44
+ # Comments
45
+ # @overload m(x, y)
46
+ # @param [String] x parameter x
47
+ # @param [Boolean] y parameter y
48
+ def m(x) end
49
+ eof
50
+ end
51
+
52
+ it_should_behave_like "all formats"
53
+ end
54
+
55
+ describe 'method with 2 overloads' do
56
+ before do
57
+ @template = :method003
58
+ YARD.parse_string <<-'eof'
59
+ private
60
+ # Method comments
61
+ # @overload m(x, y)
62
+ # Overload docstring
63
+ # @param [String] x parameter x
64
+ # @param [Boolean] y parameter y
65
+ # @overload m(x, y, z)
66
+ # @param [String] x parameter x
67
+ # @param [Boolean] y parameter y
68
+ # @param [Boolean] z parameter z
69
+ def m(*args) end
70
+ eof
71
+ end
72
+
73
+ it_should_behave_like "all formats"
74
+ end
75
+
76
+ describe 'method void return' do
77
+ before do
78
+ @template = :method004
79
+ YARD.parse_string <<-'eof'
80
+ # @return [void]
81
+ def m(*args) end
82
+ eof
83
+ end
84
+
85
+ it_should_behave_like "all formats"
86
+ end
87
+
88
+ describe 'method void return in an overload' do
89
+ before do
90
+ @template = :method005
91
+ YARD.parse_string <<-'eof'
92
+ # @overload m(a)
93
+ # @return [void]
94
+ # @overload m(b)
95
+ # @param [String] b hi
96
+ def m(*args) end
97
+ eof
98
+ end
99
+
100
+ it_should_behave_like "all formats"
101
+ end
102
+ end