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
@@ -7,7 +7,7 @@ describe YARD::Serializers::FileSystemSerializer do
7
7
  FileUtils.stub!(:mkdir_p)
8
8
  File.stub!(:open)
9
9
  end
10
-
10
+
11
11
  describe '#basepath' do
12
12
  it "should default the base path to the 'doc/'" do
13
13
  obj = Serializers::FileSystemSerializer.new
@@ -21,7 +21,7 @@ describe YARD::Serializers::FileSystemSerializer do
21
21
  obj.extension.should == "html"
22
22
  end
23
23
  end
24
-
24
+
25
25
  describe '#serialized_path' do
26
26
  it "should allow no extension to be used" do
27
27
  obj = Serializers::FileSystemSerializer.new :extension => nil
@@ -38,17 +38,17 @@ describe YARD::Serializers::FileSystemSerializer do
38
38
  s = Serializers::FileSystemSerializer.new(:basepath => 'foo', :extension => 'txt')
39
39
  s.serialized_path('test.txt').should == 'test.txt'
40
40
  end
41
-
41
+
42
42
  it "should remove special chars from path" do
43
43
  m = CodeObjects::MethodObject.new(nil, 'a')
44
44
  s = Serializers::FileSystemSerializer.new
45
45
 
46
46
  { :/ => '_2F_i.html',
47
- :gsub! => 'gsub_21_i.html',
48
- :ask? => 'ask_3F_i.html',
49
- :=== => '_3D_3D_3D_i.html',
50
- :+ => '_2B_i.html',
51
- :- => '-_i.html',
47
+ :gsub! => 'gsub_21_i.html',
48
+ :ask? => 'ask_3F_i.html',
49
+ :=== => '_3D_3D_3D_i.html',
50
+ :+ => '_2B_i.html',
51
+ :- => '-_i.html',
52
52
  :[]= => '_5B_5D_3D_i.html',
53
53
  :<< => '_3C_3C_i.html',
54
54
  :>= => '_3E_3D_i.html',
@@ -63,7 +63,7 @@ describe YARD::Serializers::FileSystemSerializer do
63
63
  s.serialized_path(m).should == value
64
64
  end
65
65
  end
66
-
66
+
67
67
  it "should handle ExtraFileObject's" do
68
68
  s = Serializers::FileSystemSerializer.new
69
69
  e = CodeObjects::ExtraFileObject.new('filename.txt', '')
@@ -76,7 +76,7 @@ describe YARD::Serializers::FileSystemSerializer do
76
76
  m2 = CodeObjects::MethodObject.new(nil, 'meth', :class)
77
77
  s.serialized_path(m1).should_not == s.serialized_path(m2)
78
78
  end
79
-
79
+
80
80
  it "should serialize path from overload tag" do
81
81
  YARD.parse_string <<-'eof'
82
82
  class Foo
@@ -84,13 +84,13 @@ describe YARD::Serializers::FileSystemSerializer do
84
84
  def bar; end
85
85
  end
86
86
  eof
87
-
87
+
88
88
  serializer = Serializers::FileSystemSerializer.new
89
89
  object = Registry.at('Foo#bar').tag(:overload)
90
90
  serializer.serialized_path(object).should == "Foo/bar_i.html"
91
91
  end
92
92
  end
93
-
93
+
94
94
  describe '#serialize' do
95
95
  it "should serialize to the correct path" do
96
96
  yard = CodeObjects::ClassObject.new(nil, :FooBar)
@@ -25,14 +25,14 @@ describe YARD::Serializers::YardocSerializer do
25
25
  @foo.should == newfoo
26
26
  newfoo.hash.should == @foo.hash
27
27
  end
28
-
28
+
29
29
  it "should maintain hash key equality when loading a dumped object" do
30
30
  newfoo = @serializer.internal_dump(@foo)
31
31
  {@foo => 1}.should have_key(newfoo)
32
32
  {newfoo => 1}.should have_key(@foo)
33
33
  end
34
34
  end
35
-
35
+
36
36
  describe '#serialize' do
37
37
  it "should accept a hash of codeobjects (and write to root)" do
38
38
  data = {:root => Registry.root}
@@ -12,13 +12,13 @@ describe YARD::Server::Adapter do
12
12
  a.libraries['yard'].should == [lib]
13
13
  end
14
14
  end
15
-
15
+
16
16
  describe '#start' do
17
17
  it "should not implement #start" do
18
18
  lambda { Adapter.new({}).start }.should raise_error(NotImplementedError)
19
19
  end
20
20
  end
21
-
21
+
22
22
  describe '.setup' do
23
23
  it 'should add template paths and helpers' do
24
24
  Adapter.setup
@@ -26,7 +26,7 @@ describe YARD::Server::Adapter do
26
26
  Templates::Engine.template_paths.should include(YARD::ROOT + '/yard/server/templates')
27
27
  end
28
28
  end
29
-
29
+
30
30
  describe '.shutdown' do
31
31
  it 'should cleanup template paths and helpers' do
32
32
  Adapter.setup
@@ -20,13 +20,13 @@ describe YARD::Server::Commands::Base do
20
20
  @command.caching = false
21
21
  @command.run
22
22
  end
23
-
23
+
24
24
  it "should require document root to cache" do
25
25
  File.should_not_receive(:open)
26
26
  @command.adapter.document_root = nil
27
27
  @command.run
28
28
  end
29
-
29
+
30
30
  it "should cache to path/to/file.html and create directories" do
31
31
  FileUtils.should_receive(:mkdir_p).with('/public/path/to')
32
32
  File.should_receive(:open).with('/public/path/to/file.html', anything)
@@ -34,15 +34,15 @@ describe YARD::Server::Commands::Base do
34
34
  @command.run
35
35
  end
36
36
  end
37
-
37
+
38
38
  describe '#redirect' do
39
39
  it "should return a valid redirection" do
40
40
  cmd = MyProcCommand.new { redirect '/foo' }
41
- cmd.call(mock_request('/foo')).should ==
41
+ cmd.call(mock_request('/foo')).should ==
42
42
  [302, {"Content-Type" => "text/html", "Location" => "/foo"}, [""]]
43
43
  end
44
44
  end
45
-
45
+
46
46
  describe '#call' do
47
47
  it "should handle a NotFoundError and use message as body" do
48
48
  cmd = MyProcCommand.new { raise NotFoundError, "hello world" }
@@ -64,20 +64,20 @@ describe YARD::Server::Commands::Base do
64
64
  s.should == 404
65
65
  b.should == ["Not found: /foo"]
66
66
  end
67
-
67
+
68
68
  it "should not override body if status is 404 and body is defined" do
69
69
  cmd = MyProcCommand.new { self.body = "foo"; self.status = 404 }
70
70
  s, h, b = *cmd.call(mock_request('/bar'))
71
71
  s.should == 404
72
72
  b.should == ['foo']
73
73
  end
74
-
74
+
75
75
  it "should handle body as Array" do
76
76
  cmd = MyProcCommand.new { self.body = ['a', 'b', 'c'] }
77
77
  s, h, b = *cmd.call(mock_request('/foo'))
78
78
  b.should == %w(a b c)
79
79
  end
80
-
80
+
81
81
  it "should allow headers to be defined" do
82
82
  cmd = MyProcCommand.new { self.headers['Foo'] = 'BAR' }
83
83
  s, h, b = *cmd.call(mock_request('/foo'))
@@ -15,16 +15,16 @@ describe YARD::Server::Commands::LibraryCommand do
15
15
  @cmd.library = @library
16
16
  @cmd.stub!(:load_yardoc).and_return(nil)
17
17
  end
18
-
18
+
19
19
  def call
20
20
  lambda { @cmd.call(@request) }.should raise_error(NotImplementedError)
21
21
  end
22
-
22
+
23
23
  describe "#call" do
24
24
  it "should raise NotImplementedError" do
25
25
  call
26
26
  end
27
-
27
+
28
28
  it "should set :rdoc as the default markup in incremental mode" do
29
29
  @cmd.incremental = true
30
30
  call
@@ -6,7 +6,7 @@ describe YARD::Server::Commands::StaticFileCommand do
6
6
  adapter.document_root = '/c'
7
7
  @cmd = StaticFileCommand.new(:adapter => adapter)
8
8
  end
9
-
9
+
10
10
  describe '#run' do
11
11
  def run(path, status = nil, body = nil)
12
12
  s, h, b = *@cmd.call(mock_request(path))
@@ -14,7 +14,7 @@ describe YARD::Server::Commands::StaticFileCommand do
14
14
  status.should == s if status
15
15
  [s, h, b]
16
16
  end
17
-
17
+
18
18
  it "should search through document root before static paths" do
19
19
  File.should_receive(:exist?).with('/c/path/to/file.txt').ordered.and_return(false)
20
20
  StaticFileCommand::STATIC_PATHS.reverse.each do |path|
@@ -22,7 +22,7 @@ describe YARD::Server::Commands::StaticFileCommand do
22
22
  end
23
23
  run '/path/to/file.txt'
24
24
  end
25
-
25
+
26
26
  it "should return file contents if found" do
27
27
  path = File.join(StaticFileCommand::STATIC_PATHS.last, '/path/to/file.txt')
28
28
  File.should_receive(:exist?).with('/c/path/to/file.txt').and_return(false)
@@ -30,7 +30,7 @@ describe YARD::Server::Commands::StaticFileCommand do
30
30
  File.should_receive(:read).with(path).and_return('FOO')
31
31
  run('/path/to/file.txt', 200, 'FOO')
32
32
  end
33
-
33
+
34
34
  it "should allow registering of new paths and use those before other static paths" do
35
35
  Server.register_static_path '/foo'
36
36
  path = '/foo/path/to/file.txt'
@@ -47,7 +47,7 @@ describe YARD::Server::Commands::StaticFileCommand do
47
47
  File.should_receive(:read).with('/c/path/to/file.txt').and_return('FOO')
48
48
  run('/c/path/to/file.txt', 200, 'FOO')
49
49
  end
50
-
50
+
51
51
  it "should return 404 if not found" do
52
52
  File.should_receive(:exist?).with('/c/path/to/file.txt').ordered.and_return(false)
53
53
  StaticFileCommand::STATIC_PATHS.reverse.each do |path|
@@ -55,14 +55,14 @@ describe YARD::Server::Commands::StaticFileCommand do
55
55
  end
56
56
  run('/path/to/file.txt', 404)
57
57
  end
58
-
58
+
59
59
  it "should return text/html for file with no extension" do
60
60
  File.should_receive(:exist?).with('/c/file').and_return(true)
61
61
  File.should_receive(:read).with('/c/file')
62
62
  s, h, b = *run('/file')
63
63
  h['Content-Type'].should == 'text/html'
64
64
  end
65
-
65
+
66
66
  {
67
67
  "js" => "text/javascript",
68
68
  "css" => "text/css",
@@ -41,7 +41,7 @@ describe YARD::Server::DocServerHelper do
41
41
  @helper.url_for(P('A')).should == '/PREFIX/foo/bar/A'
42
42
  end
43
43
  end
44
-
44
+
45
45
  describe '#url_for_file' do
46
46
  it "should properly link file objects using file/ prefix" do
47
47
  file = CodeObjects::ExtraFileObject.new('a/b/FooBar.md', '')
@@ -8,15 +8,15 @@ describe YARD::Server::DocServerSerializer do
8
8
  end
9
9
 
10
10
  after(:all) { Server::Adapter.shutdown }
11
-
11
+
12
12
  it "should return '/PREFIX/library/toplevel' for root" do
13
13
  @serializer.serialized_path(Registry.root).should == "toplevel"
14
14
  end
15
-
15
+
16
16
  it "should return /PREFIX/library/Object for Object in a library" do
17
17
  @serializer.serialized_path(P('A::B::C')).should == 'A/B/C'
18
18
  end
19
-
19
+
20
20
  it "should link to instance method as Class:method" do
21
21
  obj = CodeObjects::MethodObject.new(:root, :method)
22
22
  @serializer.serialized_path(obj).should == 'toplevel:method'
@@ -26,17 +26,17 @@ describe YARD::Server::DocServerSerializer do
26
26
  obj = CodeObjects::MethodObject.new(:root, :method, :class)
27
27
  @serializer.serialized_path(obj).should == 'toplevel.method'
28
28
  end
29
-
29
+
30
30
  it "should link to anchor for constant" do
31
31
  obj = CodeObjects::ConstantObject.new(:root, :FOO)
32
32
  @serializer.serialized_path(obj).should == 'toplevel#FOO-constant'
33
33
  end
34
-
34
+
35
35
  it "should link to anchor for class variable" do
36
36
  obj = CodeObjects::ClassVariableObject.new(:root, :@@foo)
37
37
  @serializer.serialized_path(obj).should == 'toplevel#@@foo-classvariable'
38
38
  end
39
-
39
+
40
40
  it "should link files using file/ prefix" do
41
41
  file = CodeObjects::ExtraFileObject.new('a/b/FooBar.md', '')
42
42
  @serializer.serialized_path(file).should == 'file/FooBar'
@@ -6,13 +6,13 @@ describe "YARD::Server::RackMiddleware" do
6
6
  @superapp = mock(:superapp)
7
7
  @app = YARD::Server::RackMiddleware.new(@superapp, :libraries => {'foo' => [LibraryVersion.new('foo', nil)]})
8
8
  end
9
-
9
+
10
10
  after(:all) { YARD::Server::Adapter.shutdown }
11
-
11
+
12
12
  it "should handle requests" do
13
13
  @app.call(Rack::MockRequest.env_for('/'))[0].should == 200
14
14
  end
15
-
15
+
16
16
  it "should pass up to the next middleware on 404" do
17
17
  @superapp.should_receive(:call).and_return([200, {}, ['OK']])
18
18
  @app.call(Rack::MockRequest.env_for('/INVALID')).should == [200, {}, ['OK']]
@@ -4,7 +4,7 @@ class MyRouterSpecRouter < Router
4
4
  def docs_prefix; 'mydocs/foo' end
5
5
  def list_prefix; 'mylist/foo' end
6
6
  def search_prefix; 'mysearch/foo' end
7
-
7
+
8
8
  def check_static_cache; nil end
9
9
  end
10
10
 
@@ -22,12 +22,12 @@ describe YARD::Server::Router do
22
22
  @router.request = @request
23
23
  @router.parse_library_from_path(args.flatten)
24
24
  end
25
-
25
+
26
26
  it "should parse library and version name out of path" do
27
27
  parse('project', '1.0.0').should == [@projects[0], []]
28
28
  @request.version_supplied.should be_true
29
29
  end
30
-
30
+
31
31
  it "should parse library and use latest version if version is not supplied" do
32
32
  parse('project').should == [@projects[1], []]
33
33
  @request.version_supplied.should be_false
@@ -37,17 +37,17 @@ describe YARD::Server::Router do
37
37
  parse('project', 'notaversion').should == [@projects[1], ['notaversion']]
38
38
  @request.version_supplied.should be_false
39
39
  end
40
-
40
+
41
41
  it "should return nil library if no library is found" do
42
42
  parse('notproject').should == [nil, ['notproject']]
43
43
  end
44
-
44
+
45
45
  it "should not parse library or version if single_library == true" do
46
46
  @adapter.stub!(:options).and_return(:single_library => true)
47
47
  parse('notproject').should == [@projects[0], ['notproject']]
48
48
  end
49
49
  end
50
-
50
+
51
51
  describe '#route' do
52
52
  def route_to(route, command, *args)
53
53
  req = mock_request(route)
@@ -60,56 +60,56 @@ describe YARD::Server::Router do
60
60
  end
61
61
  router.call(req)
62
62
  end
63
-
63
+
64
64
  it "should route /docs/OBJECT to object if single_library = true" do
65
65
  @adapter.stub!(:options).and_return(:single_library => true)
66
66
  route_to('/mydocs/foo/FOO', DisplayObjectCommand)
67
67
  end
68
-
68
+
69
69
  it "should route /docs" do
70
70
  route_to('/mydocs/foo', LibraryIndexCommand)
71
71
  end
72
-
72
+
73
73
  it "should route /docs as index for library if single_library == true" do
74
74
  @adapter.stub!(:options).and_return(:single_library => true)
75
75
  route_to('/mydocs/foo/', DisplayObjectCommand)
76
76
  end
77
-
77
+
78
78
  it "should route /docs/name/version" do
79
79
  route_to('/mydocs/foo/project/1.0.0', DisplayObjectCommand)
80
80
  @command.library.should == @projects[0]
81
81
  end
82
-
82
+
83
83
  it "should route /docs/name/ to latest version of library" do
84
84
  route_to('/mydocs/foo/project', DisplayObjectCommand)
85
85
  @command.library.should == @projects[1]
86
86
  end
87
-
87
+
88
88
  it "should route /list/name/version/class" do
89
- route_to('/mylist/foo/project/1.0.0/class', ListClassesCommand)
89
+ route_to('/mylist/foo/project/1.0.0/class', ListCommand)
90
90
  @command.library.should == @projects[0]
91
91
  end
92
92
 
93
93
  it "should route /list/name/version/methods" do
94
- route_to('/mylist/foo/project/1.0.0/methods', ListMethodsCommand)
94
+ route_to('/mylist/foo/project/1.0.0/methods', ListCommand)
95
95
  @command.library.should == @projects[0]
96
96
  end
97
97
 
98
98
  it "should route /list/name/version/files" do
99
- route_to('/mylist/foo/project/1.0.0/files', ListFilesCommand)
99
+ route_to('/mylist/foo/project/1.0.0/files', ListCommand)
100
100
  @command.library.should == @projects[0]
101
101
  end
102
-
102
+
103
103
  it "should route /list/name to latest version of library" do
104
- route_to('/mylist/foo/project/class', ListClassesCommand)
104
+ route_to('/mylist/foo/project/class', ListCommand)
105
105
  @command.library.should == @projects[1]
106
106
  end
107
-
107
+
108
108
  it "should route /search/name/version" do
109
109
  route_to('/mysearch/foo/project/1.0.0', SearchCommand)
110
110
  @command.library.should == @projects[0]
111
111
  end
112
-
112
+
113
113
  it "should route /search/name to latest version of library" do
114
114
  route_to('/mysearch/foo/project', SearchCommand)
115
115
  @command.library.should == @projects[1]
@@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/spec_helper'
2
2
 
3
3
  describe YARD::Server::StaticCaching do
4
4
  include StaticCaching
5
-
5
+
6
6
  describe '#check_static_cache' do
7
7
  def adapter; @adapter ||= mock_adapter end
8
8
  def request; @request ||= OpenStruct.new end
@@ -11,7 +11,7 @@ describe YARD::Server::StaticCaching do
11
11
  adapter.document_root = nil
12
12
  check_static_cache.should be_nil
13
13
  end
14
-
14
+
15
15
  it "should read a file from document root if path matches file on system" do
16
16
  request.path = '/hello/world.html'
17
17
  File.should_receive(:file?).with('/public/hello/world.html').and_return(true)
@@ -20,7 +20,7 @@ describe YARD::Server::StaticCaching do
20
20
  s.should == 200
21
21
  b.should == ["body"]
22
22
  end
23
-
23
+
24
24
  it "should read a file if path matches file on system + .html" do
25
25
  request.path = '/hello/world'
26
26
  File.should_receive(:file?).with('/public/hello/world.html').and_return(true)
@@ -29,7 +29,7 @@ describe YARD::Server::StaticCaching do
29
29
  s.should == 200
30
30
  b.should == ["body"]
31
31
  end
32
-
32
+
33
33
  it "should return nil if no matching file is found" do
34
34
  request.path = '/hello/foo'
35
35
  File.should_receive(:file?).with('/public/hello/foo.html').and_return(false)