yard 0.7.5 → 0.8.0

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 (339) hide show
  1. data/.yardopts +10 -2
  2. data/ChangeLog +1263 -38
  3. data/LEGAL +5 -5
  4. data/LICENSE +1 -1
  5. data/README.md +91 -82
  6. data/Rakefile +6 -6
  7. data/benchmarks/builtins_vs_eval.rb +1 -1
  8. data/benchmarks/erb_vs_erubis.rb +4 -4
  9. data/benchmarks/generation.rb +5 -5
  10. data/benchmarks/parsing.rb +2 -2
  11. data/benchmarks/registry_store_types.rb +48 -0
  12. data/bin/yard +9 -1
  13. data/bin/yardoc +9 -1
  14. data/bin/yri +10 -2
  15. data/docs/CodeObjects.md +10 -10
  16. data/docs/GettingStarted.md +85 -83
  17. data/docs/Handlers.md +21 -21
  18. data/docs/Overview.md +7 -7
  19. data/docs/Parser.md +30 -30
  20. data/docs/Tags.md +250 -554
  21. data/docs/TagsArch.md +123 -0
  22. data/docs/Templates.md +58 -80
  23. data/docs/WhatsNew.md +378 -133
  24. data/docs/templates/default/fulldoc/html/full_list_tag.erb +7 -0
  25. data/docs/templates/default/fulldoc/html/setup.rb +6 -0
  26. data/docs/templates/default/layout/html/setup.rb +8 -0
  27. data/docs/templates/default/layout/html/tag_list.erb +11 -0
  28. data/docs/templates/default/yard_tags/html/list.erb +18 -0
  29. data/docs/templates/default/yard_tags/html/setup.rb +27 -0
  30. data/docs/templates/plugin.rb +65 -0
  31. data/lib/yard.rb +1 -10
  32. data/lib/yard/autoload.rb +75 -27
  33. data/lib/yard/cli/command.rb +5 -2
  34. data/lib/yard/cli/command_parser.rb +3 -2
  35. data/lib/yard/cli/diff.rb +1 -1
  36. data/lib/yard/cli/i18n.rb +69 -0
  37. data/lib/yard/cli/list.rb +1 -1
  38. data/lib/yard/cli/server.rb +30 -7
  39. data/lib/yard/cli/stats.rb +5 -6
  40. data/lib/yard/cli/yardoc.rb +95 -45
  41. data/lib/yard/cli/yri.rb +24 -3
  42. data/lib/yard/code_objects/base.rb +35 -4
  43. data/lib/yard/code_objects/extra_file_object.rb +1 -1
  44. data/lib/yard/code_objects/macro_object.rb +56 -99
  45. data/lib/yard/code_objects/method_object.rb +44 -6
  46. data/lib/yard/config.rb +18 -8
  47. data/lib/yard/core_ext/symbol_hash.rb +1 -1
  48. data/lib/yard/docstring.rb +45 -85
  49. data/lib/yard/docstring_parser.rb +269 -0
  50. data/lib/yard/handlers/base.rb +129 -118
  51. data/lib/yard/handlers/c/alias_handler.rb +15 -0
  52. data/lib/yard/handlers/c/attribute_handler.rb +13 -0
  53. data/lib/yard/handlers/c/base.rb +110 -0
  54. data/lib/yard/handlers/c/class_handler.rb +26 -0
  55. data/lib/yard/handlers/c/constant_handler.rb +12 -0
  56. data/lib/yard/handlers/c/handler_methods.rb +165 -0
  57. data/lib/yard/handlers/c/init_handler.rb +16 -0
  58. data/lib/yard/handlers/c/method_handler.rb +35 -0
  59. data/lib/yard/handlers/c/mixin_handler.rb +13 -0
  60. data/lib/yard/handlers/c/module_handler.rb +16 -0
  61. data/lib/yard/handlers/c/override_comment_handler.rb +22 -0
  62. data/lib/yard/handlers/c/path_handler.rb +10 -0
  63. data/lib/yard/handlers/c/struct_handler.rb +12 -0
  64. data/lib/yard/handlers/c/symbol_handler.rb +7 -0
  65. data/lib/yard/handlers/processor.rb +41 -30
  66. data/lib/yard/handlers/ruby/alias_handler.rb +0 -2
  67. data/lib/yard/handlers/ruby/attribute_handler.rb +16 -17
  68. data/lib/yard/handlers/ruby/base.rb +10 -6
  69. data/lib/yard/handlers/ruby/comment_handler.rb +9 -0
  70. data/lib/yard/handlers/ruby/dsl_handler.rb +14 -0
  71. data/lib/yard/handlers/ruby/dsl_handler_methods.rb +71 -0
  72. data/lib/yard/handlers/ruby/legacy/alias_handler.rb +0 -3
  73. data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +16 -17
  74. data/lib/yard/handlers/ruby/legacy/base.rb +28 -6
  75. data/lib/yard/handlers/ruby/legacy/comment_handler.rb +9 -0
  76. data/lib/yard/handlers/ruby/legacy/dsl_handler.rb +16 -0
  77. data/lib/yard/handlers/ruby/legacy/method_handler.rb +0 -2
  78. data/lib/yard/handlers/ruby/legacy/mixin_handler.rb +1 -1
  79. data/lib/yard/handlers/ruby/legacy/module_function_handler.rb +18 -0
  80. data/lib/yard/handlers/ruby/method_handler.rb +10 -15
  81. data/lib/yard/handlers/ruby/mixin_handler.rb +1 -1
  82. data/lib/yard/handlers/ruby/module_function_handler.rb +26 -0
  83. data/lib/yard/handlers/ruby/struct_handler_methods.rb +3 -2
  84. data/lib/yard/i18n/pot_generator.rb +281 -0
  85. data/lib/yard/i18n/text.rb +72 -0
  86. data/lib/yard/logging.rb +3 -7
  87. data/lib/yard/options.rb +216 -0
  88. data/lib/yard/parser/c/c_parser.rb +225 -0
  89. data/lib/yard/parser/c/comment_parser.rb +131 -0
  90. data/lib/yard/parser/c/statement.rb +63 -0
  91. data/lib/yard/parser/ruby/ast_node.rb +91 -1
  92. data/lib/yard/parser/ruby/legacy/ruby_parser.rb +1 -0
  93. data/lib/yard/parser/ruby/legacy/statement.rb +7 -2
  94. data/lib/yard/parser/ruby/legacy/statement_list.rb +13 -22
  95. data/lib/yard/parser/ruby/ruby_parser.rb +87 -26
  96. data/lib/yard/parser/source_parser.rb +89 -88
  97. data/lib/yard/rake/yardoc_task.rb +1 -1
  98. data/lib/yard/registry.rb +21 -10
  99. data/lib/yard/registry_store.rb +48 -0
  100. data/lib/yard/serializers/file_system_serializer.rb +18 -20
  101. data/lib/yard/serializers/yardoc_serializer.rb +1 -0
  102. data/lib/yard/server/adapter.rb +2 -2
  103. data/lib/yard/server/commands/base.rb +1 -1
  104. data/lib/yard/server/commands/display_object_command.rb +13 -6
  105. data/lib/yard/server/commands/frames_command.rb +4 -21
  106. data/lib/yard/server/commands/library_command.rb +57 -11
  107. data/lib/yard/server/commands/list_command.rb +10 -34
  108. data/lib/yard/server/commands/search_command.rb +8 -2
  109. data/lib/yard/server/doc_server_helper.rb +34 -0
  110. data/lib/yard/server/rack_adapter.rb +5 -1
  111. data/lib/yard/server/router.rb +4 -10
  112. data/lib/yard/server/static_caching.rb +2 -2
  113. data/lib/yard/server/templates/default/fulldoc/html/css/custom.css +2 -2
  114. data/lib/yard/server/templates/default/fulldoc/html/js/live.js +0 -15
  115. data/lib/yard/server/templates/default/layout/html/breadcrumb.erb +3 -3
  116. data/lib/yard/server/templates/default/layout/html/script_setup.erb +8 -0
  117. data/lib/yard/server/templates/doc_server/processing/html/processing.erb +1 -1
  118. data/lib/yard/server/templates/doc_server/search/html/setup.rb +1 -1
  119. data/lib/yard/tags/default_factory.rb +31 -4
  120. data/lib/yard/tags/directives.rb +593 -0
  121. data/lib/yard/tags/library.rb +437 -35
  122. data/lib/yard/templates/engine.rb +17 -12
  123. data/lib/yard/templates/helpers/base_helper.rb +8 -2
  124. data/lib/yard/templates/helpers/html_helper.rb +57 -14
  125. data/lib/yard/templates/helpers/markup/rdoc_markup.rb +1 -1
  126. data/lib/yard/templates/helpers/markup_helper.rb +9 -9
  127. data/lib/yard/templates/helpers/text_helper.rb +2 -2
  128. data/lib/yard/templates/template.rb +42 -13
  129. data/lib/yard/templates/template_options.rb +81 -0
  130. data/spec/cli/command_parser_spec.rb +4 -4
  131. data/spec/cli/command_spec.rb +3 -3
  132. data/spec/cli/config_spec.rb +13 -13
  133. data/spec/cli/diff_spec.rb +13 -10
  134. data/spec/cli/gems_spec.rb +12 -12
  135. data/spec/cli/help_spec.rb +2 -2
  136. data/spec/cli/i18n_spec.rb +111 -0
  137. data/spec/cli/server_spec.rb +66 -18
  138. data/spec/cli/stats_spec.rb +15 -15
  139. data/spec/cli/yardoc_spec.rb +124 -97
  140. data/spec/cli/yri_spec.rb +14 -12
  141. data/spec/code_objects/base_spec.rb +104 -46
  142. data/spec/code_objects/class_object_spec.rb +33 -33
  143. data/spec/code_objects/code_object_list_spec.rb +5 -5
  144. data/spec/code_objects/constants_spec.rb +4 -3
  145. data/spec/code_objects/extra_file_object_spec.rb +19 -19
  146. data/spec/code_objects/macro_object_spec.rb +31 -37
  147. data/spec/code_objects/method_object_spec.rb +46 -23
  148. data/spec/code_objects/module_object_spec.rb +16 -16
  149. data/spec/code_objects/namespace_object_spec.rb +6 -6
  150. data/spec/code_objects/proxy_spec.rb +19 -19
  151. data/spec/config_spec.rb +33 -24
  152. data/spec/core_ext/array_spec.rb +1 -1
  153. data/spec/core_ext/file_spec.rb +8 -8
  154. data/spec/core_ext/hash_spec.rb +1 -1
  155. data/spec/core_ext/insertion_spec.rb +3 -3
  156. data/spec/core_ext/module_spec.rb +1 -1
  157. data/spec/core_ext/string_spec.rb +6 -6
  158. data/spec/core_ext/symbol_hash_spec.rb +11 -11
  159. data/spec/docstring_parser_spec.rb +207 -0
  160. data/spec/docstring_spec.rb +33 -146
  161. data/spec/handlers/alias_handler_spec.rb +14 -14
  162. data/spec/handlers/attribute_handler_spec.rb +20 -20
  163. data/spec/handlers/base_spec.rb +16 -16
  164. data/spec/handlers/c/alias_handler_spec.rb +33 -0
  165. data/spec/handlers/c/attribute_handler_spec.rb +40 -0
  166. data/spec/handlers/c/class_handler_spec.rb +64 -0
  167. data/spec/handlers/c/constant_handler_spec.rb +68 -0
  168. data/spec/handlers/c/init_handler_spec.rb +36 -0
  169. data/spec/handlers/c/method_handler_spec.rb +228 -0
  170. data/spec/handlers/c/mixin_handler_spec.rb +27 -0
  171. data/spec/handlers/c/module_handler_spec.rb +38 -0
  172. data/spec/handlers/c/override_comment_handler_spec.rb +43 -0
  173. data/spec/handlers/c/path_handler_spec.rb +35 -0
  174. data/spec/handlers/c/spec_helper.rb +11 -0
  175. data/spec/handlers/c/struct_handler_spec.rb +15 -0
  176. data/spec/handlers/class_condition_handler_spec.rb +10 -10
  177. data/spec/handlers/class_handler_spec.rb +38 -38
  178. data/spec/handlers/class_variable_handler_spec.rb +1 -1
  179. data/spec/handlers/constant_handler_spec.rb +7 -7
  180. data/spec/handlers/{macro_handler_spec.rb → dsl_handler_spec.rb} +72 -53
  181. data/spec/handlers/examples/alias_handler_001.rb.txt +5 -5
  182. data/spec/handlers/examples/class_condition_handler_001.rb.txt +9 -9
  183. data/spec/handlers/examples/class_handler_001.rb.txt +1 -1
  184. data/spec/handlers/examples/dsl_handler_001.rb.txt +110 -0
  185. data/spec/handlers/examples/exception_handler_001.rb.txt +14 -14
  186. data/spec/handlers/examples/method_condition_handler_001.rb.txt +2 -2
  187. data/spec/handlers/examples/method_handler_001.rb.txt +16 -16
  188. data/spec/handlers/examples/mixin_handler_001.rb.txt +8 -4
  189. data/spec/handlers/examples/private_constant_handler_001.rb.txt +1 -1
  190. data/spec/handlers/examples/visibility_handler_001.rb.txt +3 -3
  191. data/spec/handlers/examples/yield_handler_001.rb.txt +13 -14
  192. data/spec/handlers/exception_handler_spec.rb +9 -9
  193. data/spec/handlers/extend_handler_spec.rb +2 -2
  194. data/spec/handlers/legacy_base_spec.rb +34 -34
  195. data/spec/handlers/method_condition_handler_spec.rb +2 -2
  196. data/spec/handlers/method_handler_spec.rb +33 -33
  197. data/spec/handlers/mixin_handler_spec.rb +13 -9
  198. data/spec/handlers/module_function_handler_spec.rb +82 -0
  199. data/spec/handlers/module_handler_spec.rb +6 -6
  200. data/spec/handlers/private_constant_handler_spec.rb +3 -3
  201. data/spec/handlers/processor_spec.rb +5 -5
  202. data/spec/handlers/ruby/base_spec.rb +10 -6
  203. data/spec/handlers/ruby/legacy/base_spec.rb +11 -7
  204. data/spec/handlers/spec_helper.rb +2 -3
  205. data/spec/handlers/visibility_handler_spec.rb +6 -6
  206. data/spec/handlers/yield_handler_spec.rb +8 -8
  207. data/spec/i18n/pot_generator_spec.rb +244 -0
  208. data/spec/i18n/text_spec.rb +69 -0
  209. data/spec/options_spec.rb +160 -0
  210. data/spec/parser/base_spec.rb +3 -3
  211. data/spec/parser/c_parser_spec.rb +31 -257
  212. data/spec/parser/examples/array.c.txt +187 -187
  213. data/spec/parser/examples/extrafile.c.txt +1 -1
  214. data/spec/parser/examples/override.c.txt +1 -1
  215. data/spec/parser/ruby/ast_node_spec.rb +1 -1
  216. data/spec/parser/ruby/legacy/statement_list_spec.rb +24 -24
  217. data/spec/parser/ruby/legacy/token_list_spec.rb +7 -7
  218. data/spec/parser/ruby/ruby_parser_spec.rb +56 -34
  219. data/spec/parser/source_parser_spec.rb +125 -65
  220. data/spec/parser/tag_parsing_spec.rb +4 -4
  221. data/spec/rake/yardoc_task_spec.rb +10 -8
  222. data/spec/registry_spec.rb +65 -36
  223. data/spec/registry_store_spec.rb +90 -40
  224. data/spec/serializers/file_system_serializer_spec.rb +12 -12
  225. data/spec/serializers/yardoc_serializer_spec.rb +2 -2
  226. data/spec/server/adapter_spec.rb +3 -3
  227. data/spec/server/commands/base_spec.rb +8 -8
  228. data/spec/server/commands/library_command_spec.rb +3 -3
  229. data/spec/server/commands/static_file_command_spec.rb +7 -7
  230. data/spec/server/doc_server_helper_spec.rb +1 -1
  231. data/spec/server/doc_server_serializer_spec.rb +6 -6
  232. data/spec/server/rack_adapter_spec.rb +3 -3
  233. data/spec/server/router_spec.rb +19 -19
  234. data/spec/server/static_caching_spec.rb +4 -4
  235. data/spec/spec_helper.rb +7 -7
  236. data/spec/tags/default_factory_spec.rb +24 -16
  237. data/spec/tags/directives_spec.rb +422 -0
  238. data/spec/tags/library_spec.rb +15 -4
  239. data/spec/tags/overload_tag_spec.rb +6 -6
  240. data/spec/tags/ref_tag_list_spec.rb +8 -8
  241. data/spec/templates/class_spec.rb +7 -7
  242. data/spec/templates/constant_spec.rb +7 -7
  243. data/spec/templates/engine_spec.rb +28 -36
  244. data/spec/templates/examples/class001.html +108 -108
  245. data/spec/templates/examples/class002.html +17 -17
  246. data/spec/templates/examples/constant001.txt +1 -1
  247. data/spec/templates/examples/method001.html +45 -45
  248. data/spec/templates/examples/method002.html +25 -25
  249. data/spec/templates/examples/method003.html +60 -60
  250. data/spec/templates/examples/method004.html +7 -7
  251. data/spec/templates/examples/method005.html +28 -28
  252. data/spec/templates/examples/module001.html +321 -321
  253. data/spec/templates/examples/module001.txt +1 -1
  254. data/spec/templates/examples/module002.html +130 -130
  255. data/spec/templates/examples/module003.html +74 -74
  256. data/spec/templates/examples/module004.html +388 -0
  257. data/spec/templates/helpers/base_helper_spec.rb +32 -32
  258. data/spec/templates/helpers/html_helper_spec.rb +87 -68
  259. data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +9 -9
  260. data/spec/templates/helpers/markup/rdoc_markup_spec.rb +16 -16
  261. data/spec/templates/helpers/markup_helper_spec.rb +31 -28
  262. data/spec/templates/helpers/method_helper_spec.rb +7 -7
  263. data/spec/templates/helpers/shared_signature_examples.rb +9 -7
  264. data/spec/templates/helpers/text_helper_spec.rb +3 -3
  265. data/spec/templates/method_spec.rb +13 -13
  266. data/spec/templates/module_spec.rb +70 -24
  267. data/spec/templates/onefile_spec.rb +32 -15
  268. data/spec/templates/section_spec.rb +23 -23
  269. data/spec/templates/spec_helper.rb +31 -1
  270. data/spec/templates/tag_spec.rb +5 -5
  271. data/spec/templates/template_spec.rb +54 -46
  272. data/spec/verifier_spec.rb +5 -5
  273. data/templates/default/class/setup.rb +2 -2
  274. data/templates/default/docstring/html/abstract.erb +1 -1
  275. data/templates/default/docstring/html/note.erb +1 -1
  276. data/templates/default/docstring/html/private.erb +1 -1
  277. data/templates/default/docstring/html/todo.erb +1 -1
  278. data/templates/default/docstring/setup.rb +2 -2
  279. data/templates/default/fulldoc/html/css/full_list.css +4 -2
  280. data/templates/default/fulldoc/html/css/style.css +50 -44
  281. data/templates/default/fulldoc/html/frames.erb +21 -6
  282. data/templates/default/fulldoc/html/full_list.erb +5 -3
  283. data/templates/default/fulldoc/html/{full_list_files.erb → full_list_file.erb} +0 -0
  284. data/templates/default/fulldoc/html/js/app.js +29 -26
  285. data/templates/default/fulldoc/html/js/full_list.js +9 -9
  286. data/templates/default/fulldoc/html/js/jquery.js +4 -16
  287. data/templates/default/fulldoc/html/setup.rb +42 -38
  288. data/templates/default/layout/dot/header.erb +1 -1
  289. data/templates/default/layout/html/breadcrumb.erb +6 -6
  290. data/templates/default/layout/html/files.erb +1 -1
  291. data/templates/default/layout/html/footer.erb +1 -1
  292. data/templates/default/layout/html/headers.erb +3 -6
  293. data/templates/default/layout/html/index.erb +1 -1
  294. data/templates/default/layout/html/layout.erb +3 -7
  295. data/templates/default/layout/html/objects.erb +1 -1
  296. data/templates/default/layout/html/script_setup.erb +5 -0
  297. data/templates/default/layout/html/search.erb +4 -1
  298. data/templates/default/layout/html/setup.rb +8 -8
  299. data/templates/default/method_details/html/method_signature.erb +10 -3
  300. data/templates/default/method_details/setup.rb +1 -0
  301. data/templates/default/module/dot/info.erb +1 -1
  302. data/templates/default/module/dot/setup.rb +2 -2
  303. data/templates/default/module/html/attribute_details.erb +1 -1
  304. data/templates/default/module/html/children.erb +1 -1
  305. data/templates/default/module/html/defines.erb +1 -1
  306. data/templates/default/module/html/inherited_methods.erb +5 -4
  307. data/templates/default/module/html/item_summary.erb +15 -5
  308. data/templates/default/module/html/method_details_list.erb +2 -2
  309. data/templates/default/module/setup.rb +25 -12
  310. data/templates/default/module/text/setup.rb +1 -1
  311. data/templates/default/onefile/html/layout.erb +1 -1
  312. data/templates/default/onefile/html/setup.rb +2 -2
  313. data/templates/default/tags/html/example.erb +4 -2
  314. data/templates/default/tags/html/option.erb +1 -1
  315. data/templates/default/tags/html/overload.erb +1 -1
  316. data/templates/default/tags/html/see.erb +1 -1
  317. data/templates/default/tags/html/tag.erb +1 -1
  318. data/templates/default/tags/setup.rb +4 -3
  319. data/templates/guide/fulldoc/html/css/style.css +8 -8
  320. data/templates/guide/fulldoc/html/js/app.js +6 -6
  321. data/templates/guide/fulldoc/html/setup.rb +12 -12
  322. data/templates/guide/layout/html/layout.erb +11 -11
  323. data/templates/guide/layout/html/setup.rb +9 -9
  324. data/templates/guide/method/html/header.erb +2 -2
  325. data/templates/guide/method/html/setup.rb +1 -1
  326. metadata +68 -18
  327. data/bin/yard-graph +0 -4
  328. data/bin/yard-server +0 -4
  329. data/docs/Glossary.md +0 -12
  330. data/lib/yard/handlers/ruby/legacy/macro_handler.rb +0 -39
  331. data/lib/yard/handlers/ruby/macro_handler.rb +0 -40
  332. data/lib/yard/handlers/ruby/macro_handler_methods.rb +0 -131
  333. data/lib/yard/parser/c_parser.rb +0 -497
  334. data/lib/yard/server/templates/default/layout/html/headers.erb +0 -16
  335. data/lib/yard/server/templates/doc_server/frames/html/frames.erb +0 -13
  336. data/lib/yard/server/templates/doc_server/frames/html/setup.rb +0 -3
  337. data/lib/yard/server/templates/doc_server/full_list/html/full_list.erb +0 -34
  338. data/lib/yard/server/templates/doc_server/full_list/html/setup.rb +0 -20
  339. data/spec/handlers/examples/macro_handler_001.rb.txt +0 -83
@@ -4,20 +4,31 @@ describe YARD::Tags::Library do
4
4
  def tag(docstring)
5
5
  Docstring.new(docstring).tags.first
6
6
  end
7
-
7
+
8
8
  describe '#see_tag' do
9
9
  it "should take a URL" do
10
10
  tag("@see http://example.com").name.should == "http://example.com"
11
11
  end
12
-
12
+
13
13
  it "should take an object path" do
14
14
  tag("@see String#reverse").name.should == "String#reverse"
15
15
  end
16
-
16
+
17
17
  it "should take a description after the url/object" do
18
18
  tag = tag("@see http://example.com An Example Site")
19
19
  tag.name.should == "http://example.com"
20
20
  tag.text.should == "An Example Site"
21
21
  end
22
22
  end
23
- end
23
+
24
+ describe '.define_tag' do
25
+ it "should allow defining tags with '.' in the name (x.y.z defines method x_y_z)" do
26
+ Tags::Library.define_tag("foo", 'x.y.z')
27
+ Tags::Library.define_tag("foo2", 'x.y.zz', Tags::OverloadTag)
28
+ Tags::Library.instance.method(:x_y_z_tag).should_not be_nil
29
+ Tags::Library.instance.method(:x_y_zz_tag).should_not be_nil
30
+ tag('@x.y.z foo bar').text.should == 'foo bar'
31
+ tag('@x.y.zz foo(bar)').signature.should == 'foo(bar)'
32
+ end
33
+ end
34
+ end
@@ -9,35 +9,35 @@ describe YARD::Tags::OverloadTag do
9
9
  @return [String]
10
10
  eof
11
11
  end
12
-
12
+
13
13
  it "should parse the first line as a method signature" do
14
14
  @tag.signature.should == "def bar(a, b = 1, &block)"
15
15
  @tag.parameters.should == [[:a, nil], [:b, "1"], [:"&block", nil]]
16
16
  end
17
-
17
+
18
18
  it "should parse the rest of the text as a new Docstring" do
19
19
  @tag.docstring.should be_instance_of(Docstring)
20
20
  @tag.docstring.should == "Hello world"
21
21
  end
22
-
22
+
23
23
  it "should set Docstring's object after #object= is called" do
24
24
  m = mock(:object)
25
25
  @tag.object = m
26
26
  @tag.docstring.object.should == m
27
27
  end
28
-
28
+
29
29
  it "should respond to #tag, #tags and #has_tag?" do
30
30
  @tag.object = mock(:object)
31
31
  @tag.tags.size.should == 2
32
32
  @tag.tag(:param).name.should == "a"
33
33
  @tag.has_tag?(:return).should == true
34
34
  end
35
-
35
+
36
36
  it "should not be a CodeObjects::Base when not hooked up to an object" do
37
37
  @tag.object = nil
38
38
  @tag.is_a?(CodeObjects::Base).should == false
39
39
  end
40
-
40
+
41
41
  it "should be a CodeObjects::Base when hooked up to an object" do
42
42
  @tag.object = mock(:object)
43
43
  @tag.object.should_receive(:is_a?).at_least(3).times.with(CodeObjects::Base).and_return(true)
@@ -2,27 +2,27 @@ require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
3
  describe YARD::Tags::RefTagList do
4
4
  before { YARD::Registry.clear }
5
-
5
+
6
6
  it "should accept symbol or string as owner's path and convert it into a proxy" do
7
7
  t = Tags::RefTagList.new('author', :String)
8
8
  t.owner.should == P(:String)
9
9
  end
10
-
10
+
11
11
  it "should accept proxy object as owner" do
12
12
  t = Tags::RefTagList.new('author', P(:String))
13
13
  t.owner.should == P(:String)
14
14
  end
15
-
15
+
16
16
  it "should return tags from a proxy object" do
17
17
  o = CodeObjects::ClassObject.new(:root, :String)
18
18
  t = Tags::Tag.new(:author, 'foo')
19
19
  o.docstring.add_tag(t)
20
-
20
+
21
21
  ref = Tags::RefTagList.new('author', :String)
22
22
  ref.tags.should == [t]
23
23
  ref.tags.first.text.should == 'foo'
24
24
  end
25
-
25
+
26
26
  it "should return named tags from a proxy object" do
27
27
  o = CodeObjects::ClassObject.new(:root, :String)
28
28
  p1 = Tags::Tag.new(:param, 'bar1', nil, 'foo')
@@ -30,12 +30,12 @@ describe YARD::Tags::RefTagList do
30
30
  p3 = Tags::Tag.new(:param, 'bar3', nil, 'bar')
31
31
  t1 = Tags::Tag.new(:return, 'blah')
32
32
  o.docstring.add_tag(p1, t1, p2, p3)
33
-
33
+
34
34
  ref = Tags::RefTagList.new('param', :String, 'foo')
35
35
  ref.tags.should == [p1, p2]
36
36
  ref.tags.first.text.should == 'bar1'
37
37
  end
38
-
38
+
39
39
  it "all tags should respond to #owner and be a RefTag" do
40
40
  o = CodeObjects::ClassObject.new(:root, :String)
41
41
  p1 = Tags::Tag.new(:param, 'bar1', nil, 'foo')
@@ -43,7 +43,7 @@ describe YARD::Tags::RefTagList do
43
43
  p3 = Tags::Tag.new(:param, 'bar3', nil, 'bar')
44
44
  t1 = Tags::Tag.new(:return, 'blah')
45
45
  o.docstring.add_tag(p1, t1, p2, p3)
46
-
46
+
47
47
  ref = Tags::RefTagList.new('param', :String)
48
48
  ref.tags.each do |t|
49
49
  t.should be_kind_of(Tags::RefTag)
@@ -16,29 +16,29 @@ describe YARD::Templates::Engine.template(:default, :docstring) do
16
16
  def method_missing(*args) end
17
17
  # @deprecated
18
18
  def a; end
19
-
19
+
20
20
  # constructor method!
21
21
  def initialize(test) end
22
22
  end
23
-
23
+
24
24
  class C < A; end
25
-
25
+
26
26
  class D
27
27
  # @private
28
28
  def initialize; end
29
29
  end
30
30
  eof
31
31
  end
32
-
32
+
33
33
  it "should render html format correctly" do
34
- html_equals(Registry.at('A').format(:format => :html, :no_highlight => true), :class001)
34
+ html_equals(Registry.at('A').format(html_options), :class001)
35
35
  end
36
-
36
+
37
37
  it "should render text format correctly" do
38
38
  text_equals(Registry.at('A').format, :class001)
39
39
  end
40
40
 
41
41
  it "should hide private constructors" do
42
- html_equals(Registry.at('D').format(:format => :html, :no_highlight => true, :verifier => Verifier.new("!@private")), :class002)
42
+ html_equals(Registry.at('D').format(html_options(:verifier => Verifier.new("!@private"))), :class002)
43
43
  end
44
44
  end
@@ -7,26 +7,26 @@ describe YARD::Templates::Engine.template(:default, :constant) do
7
7
  class YARD::CLI::YRI
8
8
  # Default search paths that should be loaded dynamically into YRI. These paths
9
9
  # take precedence over all other paths ({SEARCH_PATHS_FILE} and RubyGems
10
- # paths). To add a path, call:
11
- #
10
+ # paths). To add a path, call:
11
+ #
12
12
  # DEFAULT_SEARCH_PATHS.push("/path/to/.yardoc")
13
- #
13
+ #
14
14
  # @return [Array<String>] a list of extra search paths
15
15
  # @since 0.6.0
16
16
  DEFAULT_SEARCH_PATHS = []
17
17
  end
18
18
  eof
19
- text_equals(Registry.at('YARD::CLI::YRI::DEFAULT_SEARCH_PATHS').format, :constant001)
19
+ text_equals(Registry.at('YARD::CLI::YRI::DEFAULT_SEARCH_PATHS').format(text_options), :constant001)
20
20
  end
21
21
  end
22
-
22
+
23
23
  describe 'simple constant with no documentation' do
24
24
  it "should render text format correctly" do
25
25
  # Short constant should show on single line
26
26
  YARD.parse_string <<-'eof'
27
27
  MYCONST = 'foo'
28
28
  eof
29
- text_equals(Registry.at('MYCONST').format, :constant002)
29
+ text_equals(Registry.at('MYCONST').format(text_options), :constant002)
30
30
 
31
31
  # Long constant should show on multiple lines, indented
32
32
  YARD.parse_string <<-'eof'
@@ -34,7 +34,7 @@ describe YARD::Templates::Engine.template(:default, :constant) do
34
34
  M, N, O, P, Q, R, S, T, U, V, W,
35
35
  X, Y, Z]
36
36
  eof
37
- text_equals(Registry.at('MYCONST').format, :constant003)
37
+ text_equals(Registry.at('MYCONST').format(text_options), :constant003)
38
38
  end
39
39
  end
40
40
  end
@@ -7,33 +7,33 @@ describe YARD::Templates::Engine do
7
7
  Engine.template_paths.pop.should == '.'
8
8
  end
9
9
  end
10
-
10
+
11
11
  describe '.template!' do
12
12
  it "should create a module including Template" do
13
13
  mod = Engine.template!('path/to/template')
14
14
  mod.should include(Template)
15
15
  mod.full_path.to_s.should == 'path/to/template'
16
16
  end
17
-
17
+
18
18
  it "should create a module including Template with full_path" do
19
19
  mod = Engine.template!('path/to/template2', '/full/path/to/template2')
20
20
  mod.should include(Template)
21
21
  mod.full_path.to_s.should == '/full/path/to/template2'
22
22
  end
23
23
  end
24
-
24
+
25
25
  describe '.template' do
26
26
  it "should raise an error if the template is not found" do
27
27
  lambda { Engine.template(:a, :b, :c) }.should raise_error(ArgumentError)
28
28
  end
29
-
29
+
30
30
  it "should create a module including Template" do
31
31
  mock = mock(:template)
32
32
  Engine.should_receive(:find_template_paths).with(nil, 'template/name').and_return(['/full/path/template/name'])
33
33
  Engine.should_receive(:template!).with('template/name', ['/full/path/template/name']).and_return(mock)
34
34
  Engine.template('template/name').should == mock
35
35
  end
36
-
36
+
37
37
  it "should create a Template from a relative Template path" do
38
38
  Engine.should_receive(:template_paths).and_return([])
39
39
  File.should_receive(:directory?).with("/full/path/template/notname").and_return(true)
@@ -53,76 +53,68 @@ describe YARD::Templates::Engine do
53
53
  ancestors = Engine.template('template/name').ancestors.map {|m| m.class_name }
54
54
  ancestors.should include("Template__full_path2_template_name")
55
55
  end
56
-
56
+
57
57
  it "should include parent directories before other template paths" do
58
58
  paths = ['/full/path/template/name', '/full/path2/template/name']
59
59
  Engine.should_receive(:find_template_paths).with(nil, 'template/name').and_return(paths)
60
60
  ancestors = Engine.template('template/name').ancestors.map {|m| m.class_name }
61
- ancestors[0, 4].should == ["Template__full_path_template_name", "Template__full_path_template",
61
+ ancestors[0, 4].should == ["Template__full_path_template_name", "Template__full_path_template",
62
62
  "Template__full_path2_template_name", "Template__full_path2_template"]
63
63
  end
64
64
  end
65
-
65
+
66
66
  describe '.generate' do
67
67
  it "should generate with fulldoc template" do
68
68
  mod = mock(:template)
69
- mod.should_receive(:run).with(:__globals => OpenStruct.new, :format => :text, :template => :default, :objects => [:a, :b, :c])
69
+ options = TemplateOptions.new
70
+ options.reset_defaults
71
+ options.objects = [:a, :b, :c]
72
+ options.object = Registry.root
73
+ mod.should_receive(:run).with(options)
70
74
  Engine.should_receive(:template).with(:default, :fulldoc, :text).and_return(mod)
71
75
  Engine.generate([:a, :b, :c])
72
76
  end
73
77
  end
74
-
78
+
75
79
  describe '.render' do
76
80
  def loads_template(*args)
77
81
  Engine.should_receive(:template).with(*args).and_return(@template)
78
82
  end
79
-
80
- before(:all) do
83
+
84
+ before(:all) do
81
85
  @object = CodeObjects::MethodObject.new(:root, :method)
82
86
  end
83
-
87
+
84
88
  before do
89
+ @options = TemplateOptions.new
90
+ @options.reset_defaults
91
+ @options.object = @object
92
+ @options.type = @object.type
85
93
  @template = mock(:template)
86
94
  @template.stub!(:include)
95
+ @template.should_receive(:run).with(@options)
87
96
  end
88
-
97
+
89
98
  it "should accept method call with no parameters" do
90
99
  loads_template(:default, :method, :text)
91
- @template.should_receive(:run).with :__globals => OpenStruct.new,
92
- :type => :method,
93
- :template => :default,
94
- :format => :text,
95
- :object => @object
96
100
  @object.format
97
101
  end
98
-
102
+
99
103
  it "should allow template key to be changed" do
100
104
  loads_template(:javadoc, :method, :text)
101
- @template.should_receive(:run).with :__globals => OpenStruct.new,
102
- :type => :method,
103
- :template => :javadoc,
104
- :format => :text,
105
- :object => @object
105
+ @options.template = :javadoc
106
106
  @object.format(:template => :javadoc)
107
107
  end
108
108
 
109
109
  it "should allow type key to be changed" do
110
110
  loads_template(:default, :fulldoc, :text)
111
- @template.should_receive(:run).with :__globals => OpenStruct.new,
112
- :type => :fulldoc,
113
- :template => :default,
114
- :format => :text,
115
- :object => @object
111
+ @options.type = :fulldoc
116
112
  @object.format(:type => :fulldoc)
117
113
  end
118
-
114
+
119
115
  it "should allow format key to be changed" do
120
116
  loads_template(:default, :method, :html)
121
- @template.should_receive(:run).with :__globals => OpenStruct.new,
122
- :type => :method,
123
- :template => :default,
124
- :format => :html,
125
- :object => @object
117
+ @options.format = :html
126
118
  @object.format(:format => :html)
127
119
  end
128
120
  end
@@ -1,43 +1,43 @@
1
- <h1>Class: A
1
+ <h1>Class: A
2
2
  <span class="abstract note title">Abstract</span>
3
-
3
+
4
4
  </h1>
5
5
 
6
6
  <dl class="box">
7
-
7
+
8
8
  <dt class="r1">Inherits:</dt>
9
9
  <dd class="r1">
10
10
  <span class="inheritName">B</span>
11
-
11
+
12
12
  <ul class="fullTree">
13
13
  <li>Object</li>
14
-
14
+
15
15
  <li class="next">B</li>
16
-
16
+
17
17
  <li class="next">A</li>
18
-
18
+
19
19
  </ul>
20
20
  <a href="#" class="inheritanceTree">show all</a>
21
-
21
+
22
22
  </dd>
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
31
  <dt class="r2 last">Defined in:</dt>
32
32
  <dd class="r2 last">(stdin)</dd>
33
-
33
+
34
34
  </dl>
35
35
  <div class="clear"></div>
36
36
 
37
37
  <h2>Overview</h2><div class="docstring">
38
38
  <div class="discussion">
39
39
  <div class="note abstract">
40
- <strong>This class is abstract.</strong>
40
+ <strong>This class is abstract.</strong>
41
41
  <div class='inline'>override this class</div>
42
42
  </div>
43
43
  Comments
@@ -45,42 +45,42 @@ Comments
45
45
  </div>
46
46
  </div>
47
47
  <div class="tags">
48
-
49
- <h3>See Also:</h3>
48
+
49
+ <p class="tag_title">See Also:</p>
50
50
  <ul class="see">
51
-
51
+
52
52
  <li>A</li>
53
-
53
+
54
54
  <li><a href="http://example.com" target="_parent" title="Example">Example</a></li>
55
-
55
+
56
56
  </ul>
57
- <h3>Author:</h3>
57
+ <p class="tag_title">Author:</p>
58
58
  <ul class="author">
59
-
59
+
60
60
  <li>
61
-
62
-
63
-
64
-
65
-
61
+
62
+
63
+
64
+
65
+
66
66
  <div class='inline'>Test</div>
67
-
67
+
68
68
  </li>
69
-
69
+
70
70
  </ul>
71
- <h3>Version:</h3>
71
+ <p class="tag_title">Version:</p>
72
72
  <ul class="version">
73
-
73
+
74
74
  <li>
75
-
76
-
77
-
78
-
79
-
75
+
76
+
77
+
78
+
79
+
80
80
  <div class='inline'>1.0</div>
81
-
81
+
82
82
  </li>
83
-
83
+
84
84
  </ul>
85
85
 
86
86
  </div><div id="subclasses">
@@ -89,97 +89,97 @@ Comments
89
89
  </div>
90
90
 
91
91
 
92
-
93
92
 
94
-
93
+
94
+
95
95
  <h2>Instance Method Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
96
96
 
97
97
  <ul class="summary">
98
-
98
+
99
99
  <li class="public deprecated">
100
100
  <span class="summary_signature">
101
-
101
+
102
102
  <a title="#a (instance method)">- <strong>a</strong> </a>
103
-
104
103
 
105
-
104
+
105
+
106
106
  </span>
107
-
108
-
109
-
110
-
111
- <span class="deprecated note title">Deprecated</span>
112
107
 
113
-
108
+
109
+
110
+
111
+ <span class="deprecated note title">deprecated</span>
112
+
113
+
114
114
  <span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'></div></span>
115
-
115
+
116
116
  </li>
117
117
 
118
-
118
+
119
119
  <li class="public ">
120
120
  <span class="summary_signature">
121
-
121
+
122
122
  <a title="#initialize (instance method)">- (A) <strong>initialize</strong>(test) </a>
123
-
124
123
 
125
-
124
+
125
+
126
126
  </span>
127
-
127
+
128
128
  <span class="note title constructor">constructor</span>
129
-
130
-
131
-
132
-
133
-
134
129
 
135
-
130
+
131
+
132
+
133
+
134
+
135
+
136
136
  <span class="summary_desc"><div class='inline'>constructor method!.</div></span>
137
-
137
+
138
138
  </li>
139
139
 
140
-
140
+
141
141
  <li class="public ">
142
142
  <span class="summary_signature">
143
-
143
+
144
144
  <a title="#method_missing (instance method)">- <strong>method_missing</strong>(*args) </a>
145
-
146
145
 
147
-
146
+
147
+
148
148
  </span>
149
-
150
-
151
-
152
-
153
-
154
149
 
155
-
150
+
151
+
152
+
153
+
154
+
155
+
156
156
  <span class="summary_desc"><div class='inline'>HI.</div></span>
157
-
157
+
158
158
  </li>
159
159
 
160
-
160
+
161
161
  </ul>
162
-
162
+
163
163
 
164
164
 
165
165
  <div id="constructor_details" class="method_details_list">
166
166
  <h2>Constructor Details</h2>
167
-
167
+
168
168
  <div class="method_details first">
169
- <p class="signature first" id="initialize-instance_method">
170
-
171
- - (<tt>A</tt>) <strong>initialize</strong>(test)
172
-
169
+ <h3 class="signature first" id="initialize-instance_method">
170
+
171
+ - (<tt>A</tt>) <strong>initialize</strong>(test)
172
+
173
173
 
174
-
175
- </p><div class="docstring">
174
+
175
+ </h3><div class="docstring">
176
176
  <div class="discussion">
177
177
  constructor method!
178
178
 
179
179
  </div>
180
180
  </div>
181
181
  <div class="tags">
182
-
182
+
183
183
  </div><table class="source_code">
184
184
  <tr>
185
185
  <td>
@@ -196,30 +196,30 @@ def initialize(test) end</pre>
196
196
  </tr>
197
197
  </table>
198
198
  </div>
199
-
199
+
200
200
  </div>
201
201
  <div id="method_missing_details" class="method_details_list">
202
202
  <h2>Dynamic Method Handling</h2>
203
203
  <p class="notice this">
204
204
  This class handles dynamic methods through the <tt>method_missing</tt> method
205
-
205
+
206
206
  </p>
207
-
207
+
208
208
  <div class="method_details first">
209
- <p class="signature first" id="method_missing-instance_method">
210
-
211
- - <strong>method_missing</strong>(*args)
212
-
209
+ <h3 class="signature first" id="method_missing-instance_method">
210
+
211
+ - <strong>method_missing</strong>(*args)
213
212
 
214
-
215
- </p><div class="docstring">
213
+
214
+
215
+ </h3><div class="docstring">
216
216
  <div class="discussion">
217
217
  HI
218
218
 
219
219
  </div>
220
220
  </div>
221
221
  <div class="tags">
222
-
222
+
223
223
  </div><table class="source_code">
224
224
  <tr>
225
225
  <td>
@@ -236,22 +236,22 @@ def method_missing(*args) end</pre>
236
236
  </tr>
237
237
  </table>
238
238
  </div>
239
-
239
+
240
240
  </div>
241
241
 
242
242
 
243
243
  <div id="instance_method_details" class="method_details_list">
244
244
  <h2>Instance Method Details</h2>
245
-
246
-
245
+
246
+
247
247
  <div class="method_details first">
248
- <p class="signature first" id="a-instance_method">
249
-
250
- - <strong>a</strong>
251
-
248
+ <h3 class="signature first" id="a-instance_method">
252
249
 
253
-
254
- </p><div class="docstring">
250
+ - <strong>a</strong>
251
+
252
+
253
+
254
+ </h3><div class="docstring">
255
255
  <div class="discussion">
256
256
  <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'></div></div>
257
257
 
@@ -259,7 +259,7 @@ def method_missing(*args) end</pre>
259
259
  </div>
260
260
  </div>
261
261
  <div class="tags">
262
-
262
+
263
263
  </div><table class="source_code">
264
264
  <tr>
265
265
  <td>
@@ -276,5 +276,5 @@ def a; end</pre>
276
276
  </tr>
277
277
  </table>
278
278
  </div>
279
-
279
+
280
280
  </div>