thorero 0.9.4.4 → 0.9.4.5

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 (298) hide show
  1. data/LICENSE +1 -1
  2. data/README +21 -0
  3. data/Rakefile +275 -108
  4. data/TODO +0 -0
  5. data/bin/merb +12 -0
  6. data/bin/merb-specs +5 -0
  7. data/docs/bootloading.dox +58 -0
  8. data/docs/documentation_standards +40 -0
  9. data/docs/merb-core-call-stack-diagram.mmap +0 -0
  10. data/docs/merb-core-call-stack-diagram.pdf +0 -0
  11. data/docs/merb-core-call-stack-diagram.png +0 -0
  12. data/docs/new_render_api +51 -0
  13. data/lib/merb-core.rb +603 -0
  14. data/lib/merb-core/autoload.rb +32 -0
  15. data/lib/merb-core/bootloader.rb +708 -0
  16. data/lib/merb-core/config.rb +303 -0
  17. data/lib/merb-core/constants.rb +43 -0
  18. data/lib/merb-core/controller/abstract_controller.rb +578 -0
  19. data/lib/merb-core/controller/exceptions.rb +302 -0
  20. data/lib/merb-core/controller/merb_controller.rb +256 -0
  21. data/lib/merb-core/controller/mime.rb +106 -0
  22. data/lib/merb-core/controller/mixins/authentication.rb +87 -0
  23. data/lib/merb-core/controller/mixins/controller.rb +290 -0
  24. data/lib/merb-core/controller/mixins/render.rb +481 -0
  25. data/lib/merb-core/controller/mixins/responder.rb +472 -0
  26. data/lib/merb-core/controller/template.rb +254 -0
  27. data/lib/merb-core/core_ext.rb +8 -0
  28. data/lib/merb-core/core_ext/kernel.rb +319 -0
  29. data/lib/merb-core/dispatch/cookies.rb +91 -0
  30. data/lib/merb-core/dispatch/dispatcher.rb +278 -0
  31. data/lib/merb-core/dispatch/exceptions.html.erb +303 -0
  32. data/lib/merb-core/dispatch/request.rb +603 -0
  33. data/lib/merb-core/dispatch/router.rb +179 -0
  34. data/lib/merb-core/dispatch/router/behavior.rb +867 -0
  35. data/lib/merb-core/dispatch/router/cached_proc.rb +52 -0
  36. data/lib/merb-core/dispatch/router/route.rb +321 -0
  37. data/lib/merb-core/dispatch/session.rb +78 -0
  38. data/lib/merb-core/dispatch/session/cookie.rb +168 -0
  39. data/lib/merb-core/dispatch/session/memcached.rb +184 -0
  40. data/lib/merb-core/dispatch/session/memory.rb +241 -0
  41. data/lib/merb-core/dispatch/worker.rb +28 -0
  42. data/lib/merb-core/gem_ext/erubis.rb +77 -0
  43. data/lib/{extlib → merb-core}/logger.rb +2 -2
  44. data/lib/merb-core/plugins.rb +59 -0
  45. data/lib/merb-core/rack.rb +21 -0
  46. data/lib/merb-core/rack/adapter.rb +44 -0
  47. data/lib/merb-core/rack/adapter/ebb.rb +25 -0
  48. data/lib/merb-core/rack/adapter/evented_mongrel.rb +26 -0
  49. data/lib/merb-core/rack/adapter/fcgi.rb +17 -0
  50. data/lib/merb-core/rack/adapter/irb.rb +118 -0
  51. data/lib/merb-core/rack/adapter/mongrel.rb +26 -0
  52. data/lib/merb-core/rack/adapter/runner.rb +28 -0
  53. data/lib/merb-core/rack/adapter/swiftiplied_mongrel.rb +26 -0
  54. data/lib/merb-core/rack/adapter/thin.rb +39 -0
  55. data/lib/merb-core/rack/adapter/thin_turbo.rb +24 -0
  56. data/lib/merb-core/rack/adapter/webrick.rb +36 -0
  57. data/lib/merb-core/rack/application.rb +18 -0
  58. data/lib/merb-core/rack/handler/mongrel.rb +97 -0
  59. data/lib/merb-core/rack/middleware.rb +26 -0
  60. data/lib/merb-core/rack/middleware/path_prefix.rb +31 -0
  61. data/lib/merb-core/rack/middleware/profiler.rb +19 -0
  62. data/lib/merb-core/rack/middleware/static.rb +45 -0
  63. data/lib/merb-core/server.rb +252 -0
  64. data/lib/merb-core/tasks/audit.rake +68 -0
  65. data/lib/merb-core/tasks/merb.rb +1 -0
  66. data/lib/merb-core/tasks/merb_rake_helper.rb +12 -0
  67. data/lib/merb-core/test.rb +11 -0
  68. data/lib/merb-core/test/helpers.rb +9 -0
  69. data/lib/merb-core/test/helpers/controller_helper.rb +8 -0
  70. data/lib/merb-core/test/helpers/multipart_request_helper.rb +175 -0
  71. data/lib/merb-core/test/helpers/request_helper.rb +344 -0
  72. data/lib/merb-core/test/helpers/route_helper.rb +33 -0
  73. data/lib/merb-core/test/helpers/view_helper.rb +121 -0
  74. data/lib/merb-core/test/matchers.rb +9 -0
  75. data/lib/merb-core/test/matchers/controller_matchers.rb +319 -0
  76. data/lib/merb-core/test/matchers/route_matchers.rb +136 -0
  77. data/lib/merb-core/test/matchers/view_matchers.rb +335 -0
  78. data/lib/merb-core/test/run_specs.rb +47 -0
  79. data/lib/merb-core/test/tasks/spectasks.rb +68 -0
  80. data/lib/merb-core/test/test_ext/hpricot.rb +32 -0
  81. data/lib/merb-core/test/test_ext/object.rb +14 -0
  82. data/lib/merb-core/test/test_ext/string.rb +14 -0
  83. data/lib/merb-core/vendor/facets.rb +2 -0
  84. data/lib/merb-core/vendor/facets/dictionary.rb +433 -0
  85. data/lib/merb-core/vendor/facets/inflect.rb +345 -0
  86. data/lib/merb-core/version.rb +11 -0
  87. data/spec/private/config/adapter_spec.rb +32 -0
  88. data/spec/private/config/config_spec.rb +202 -0
  89. data/spec/private/config/environment_spec.rb +13 -0
  90. data/spec/private/config/spec_helper.rb +1 -0
  91. data/spec/private/core_ext/kernel_spec.rb +169 -0
  92. data/spec/private/dispatch/bootloader_spec.rb +24 -0
  93. data/spec/private/dispatch/cookies_spec.rb +107 -0
  94. data/spec/private/dispatch/dispatch_spec.rb +35 -0
  95. data/spec/private/dispatch/fixture/app/controllers/application.rb +4 -0
  96. data/spec/private/dispatch/fixture/app/controllers/exceptions.rb +27 -0
  97. data/spec/private/dispatch/fixture/app/controllers/foo.rb +21 -0
  98. data/spec/private/dispatch/fixture/app/helpers/global_helpers.rb +8 -0
  99. data/spec/private/dispatch/fixture/app/views/exeptions/client_error.html.erb +37 -0
  100. data/spec/private/dispatch/fixture/app/views/exeptions/internal_server_error.html.erb +216 -0
  101. data/spec/private/dispatch/fixture/app/views/exeptions/not_acceptable.html.erb +38 -0
  102. data/spec/private/dispatch/fixture/app/views/exeptions/not_found.html.erb +40 -0
  103. data/spec/private/dispatch/fixture/app/views/foo/bar.html.erb +0 -0
  104. data/spec/private/dispatch/fixture/app/views/layout/application.html.erb +11 -0
  105. data/spec/private/dispatch/fixture/config/black_hole.rb +12 -0
  106. data/spec/private/dispatch/fixture/config/environments/development.rb +6 -0
  107. data/spec/private/dispatch/fixture/config/environments/production.rb +5 -0
  108. data/spec/private/dispatch/fixture/config/environments/test.rb +6 -0
  109. data/spec/private/dispatch/fixture/config/init.rb +45 -0
  110. data/spec/private/dispatch/fixture/config/rack.rb +11 -0
  111. data/spec/private/dispatch/fixture/config/router.rb +35 -0
  112. data/spec/private/dispatch/fixture/log/merb_test.log +1874 -0
  113. data/spec/private/dispatch/fixture/public/images/merb.jpg +0 -0
  114. data/spec/private/dispatch/fixture/public/merb.fcgi +4 -0
  115. data/spec/private/dispatch/fixture/public/stylesheets/master.css +119 -0
  116. data/spec/private/dispatch/route_params_spec.rb +24 -0
  117. data/spec/private/dispatch/session_mixin_spec.rb +47 -0
  118. data/spec/private/dispatch/spec_helper.rb +1 -0
  119. data/spec/private/plugins/plugin_spec.rb +166 -0
  120. data/spec/private/rack/application_spec.rb +49 -0
  121. data/spec/private/router/behavior_spec.rb +60 -0
  122. data/spec/private/router/fixture/log/merb_test.log +139 -0
  123. data/spec/private/router/route_spec.rb +414 -0
  124. data/spec/private/router/router_spec.rb +175 -0
  125. data/spec/private/vendor/facets/plural_spec.rb +564 -0
  126. data/spec/private/vendor/facets/singular_spec.rb +489 -0
  127. data/spec/public/DEFINITIONS +11 -0
  128. data/spec/public/abstract_controller/controllers/alt_views/layout/application.erb +1 -0
  129. data/spec/public/abstract_controller/controllers/alt_views/layout/merb/test/fixtures/abstract/render_string_controller_layout.erb +1 -0
  130. data/spec/public/abstract_controller/controllers/alt_views/layout/merb/test/fixtures/abstract/render_template_controller_layout.erb +1 -0
  131. data/spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/display_object_with_multiple_roots/index.erb +1 -0
  132. data/spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/display_object_with_multiple_roots/show.erb +1 -0
  133. data/spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/render_template_multiple_roots/index.erb +1 -0
  134. data/spec/public/abstract_controller/controllers/alt_views/partial/basic_partial_with_multiple_roots/_partial.erb +1 -0
  135. data/spec/public/abstract_controller/controllers/alt_views/render_template_multiple_roots_and_custom_location/index.erb +1 -0
  136. data/spec/public/abstract_controller/controllers/alt_views/render_template_multiple_roots_inherited/index.erb +1 -0
  137. data/spec/public/abstract_controller/controllers/cousins.rb +41 -0
  138. data/spec/public/abstract_controller/controllers/display.rb +54 -0
  139. data/spec/public/abstract_controller/controllers/filters.rb +193 -0
  140. data/spec/public/abstract_controller/controllers/helpers.rb +41 -0
  141. data/spec/public/abstract_controller/controllers/partial.rb +121 -0
  142. data/spec/public/abstract_controller/controllers/render.rb +113 -0
  143. data/spec/public/abstract_controller/controllers/views/helpers/capture/index.erb +1 -0
  144. data/spec/public/abstract_controller/controllers/views/helpers/capture_eq/index.erb +1 -0
  145. data/spec/public/abstract_controller/controllers/views/helpers/capture_with_args/index.erb +1 -0
  146. data/spec/public/abstract_controller/controllers/views/helpers/concat/index.erb +1 -0
  147. data/spec/public/abstract_controller/controllers/views/layout/alt.erb +1 -0
  148. data/spec/public/abstract_controller/controllers/views/layout/custom.erb +1 -0
  149. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/display_object/index.erb +1 -0
  150. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/display_object_with_action/new.erb +1 -0
  151. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template/index.erb +1 -0
  152. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_app_layout/index.erb +0 -0
  153. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_custom_layout/index.erb +1 -0
  154. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_multiple_roots/index.erb +1 -0
  155. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_multiple_roots/show.erb +1 -0
  156. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_two_throw_contents/index.erb +1 -0
  157. data/spec/public/abstract_controller/controllers/views/partial/another_directory/_partial.erb +1 -0
  158. data/spec/public/abstract_controller/controllers/views/partial/basic_partial/_partial.erb +1 -0
  159. data/spec/public/abstract_controller/controllers/views/partial/basic_partial/index.erb +1 -0
  160. data/spec/public/abstract_controller/controllers/views/partial/basic_partial_with_multiple_roots/index.erb +1 -0
  161. data/spec/public/abstract_controller/controllers/views/partial/nested_partial/_first.erb +1 -0
  162. data/spec/public/abstract_controller/controllers/views/partial/nested_partial/_second.erb +1 -0
  163. data/spec/public/abstract_controller/controllers/views/partial/nested_partial/index.erb +1 -0
  164. data/spec/public/abstract_controller/controllers/views/partial/partial_in_another_directory/index.erb +1 -0
  165. data/spec/public/abstract_controller/controllers/views/partial/partial_with_both/_collection.erb +1 -0
  166. data/spec/public/abstract_controller/controllers/views/partial/partial_with_both/index.erb +1 -0
  167. data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections/_collection.erb +1 -0
  168. data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections/index.erb +1 -0
  169. data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections_and_as/_collection.erb +1 -0
  170. data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections_and_as/index.erb +1 -0
  171. data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections_and_counter/_collection.erb +1 -0
  172. data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections_and_counter/index.erb +1 -0
  173. data/spec/public/abstract_controller/controllers/views/partial/partial_with_locals/_variables.erb +1 -0
  174. data/spec/public/abstract_controller/controllers/views/partial/partial_with_locals/index.erb +1 -0
  175. data/spec/public/abstract_controller/controllers/views/partial/partial_with_with_and_locals/_both.erb +1 -0
  176. data/spec/public/abstract_controller/controllers/views/partial/partial_with_with_and_locals/index.erb +1 -0
  177. data/spec/public/abstract_controller/controllers/views/partial/with_absolute_partial/_partial.erb +1 -0
  178. data/spec/public/abstract_controller/controllers/views/partial/with_absolute_partial/index.erb +1 -0
  179. data/spec/public/abstract_controller/controllers/views/partial/with_as_partial/_with_partial.erb +1 -0
  180. data/spec/public/abstract_controller/controllers/views/partial/with_as_partial/index.erb +1 -0
  181. data/spec/public/abstract_controller/controllers/views/partial/with_nil_partial/_with_partial.erb +1 -0
  182. data/spec/public/abstract_controller/controllers/views/partial/with_nil_partial/index.erb +1 -0
  183. data/spec/public/abstract_controller/controllers/views/partial/with_partial/_with_partial.erb +1 -0
  184. data/spec/public/abstract_controller/controllers/views/partial/with_partial/index.erb +1 -0
  185. data/spec/public/abstract_controller/controllers/views/test_display/foo.html.erb +1 -0
  186. data/spec/public/abstract_controller/controllers/views/test_render/foo.html.erb +0 -0
  187. data/spec/public/abstract_controller/controllers/views/wonderful/index.erb +1 -0
  188. data/spec/public/abstract_controller/display_spec.rb +33 -0
  189. data/spec/public/abstract_controller/filter_spec.rb +106 -0
  190. data/spec/public/abstract_controller/helper_spec.rb +21 -0
  191. data/spec/public/abstract_controller/partial_spec.rb +61 -0
  192. data/spec/public/abstract_controller/render_spec.rb +90 -0
  193. data/spec/public/abstract_controller/spec_helper.rb +31 -0
  194. data/spec/public/boot_loader/boot_loader_spec.rb +33 -0
  195. data/spec/public/boot_loader/spec_helper.rb +1 -0
  196. data/spec/public/controller/authentication_spec.rb +103 -0
  197. data/spec/public/controller/base_spec.rb +36 -0
  198. data/spec/public/controller/controllers/authentication.rb +45 -0
  199. data/spec/public/controller/controllers/base.rb +36 -0
  200. data/spec/public/controller/controllers/display.rb +118 -0
  201. data/spec/public/controller/controllers/redirect.rb +30 -0
  202. data/spec/public/controller/controllers/responder.rb +93 -0
  203. data/spec/public/controller/controllers/url.rb +7 -0
  204. data/spec/public/controller/controllers/views/layout/custom.html.erb +1 -0
  205. data/spec/public/controller/controllers/views/layout/custom_arg.html.erb +1 -0
  206. data/spec/public/controller/controllers/views/layout/custom_arg.json.erb +1 -0
  207. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_and_local_provides/index.html.erb +1 -0
  208. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_and_local_provides/index.xml.erb +1 -0
  209. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_provides/index.html.erb +1 -0
  210. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_provides/index.xml.erb +1 -0
  211. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template/index.html.erb +1 -0
  212. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template/no_layout.html.erb +1 -0
  213. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template_argument/index.html.erb +1 -0
  214. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/html_default/index.html.erb +1 -0
  215. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/layout/custom.html.erb +1 -0
  216. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/local_provides/index.html.erb +1 -0
  217. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/local_provides/index.xml.erb +1 -0
  218. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/multi_provides/index.html.erb +1 -0
  219. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/multi_provides/index.js.erb +1 -0
  220. data/spec/public/controller/display_spec.rb +84 -0
  221. data/spec/public/controller/redirect_spec.rb +27 -0
  222. data/spec/public/controller/responder_spec.rb +163 -0
  223. data/spec/public/controller/spec_helper.rb +11 -0
  224. data/spec/public/controller/url_spec.rb +180 -0
  225. data/spec/public/core/merb_core_spec.rb +45 -0
  226. data/spec/public/core_ext/class_spec.rb +91 -0
  227. data/spec/public/core_ext/fixtures/core_ext_dependency.rb +2 -0
  228. data/spec/public/core_ext/kernel_spec.rb +9 -0
  229. data/spec/public/core_ext/spec_helper.rb +1 -0
  230. data/spec/public/directory_structure/directory/app/controllers/application.rb +3 -0
  231. data/spec/public/directory_structure/directory/app/controllers/base.rb +13 -0
  232. data/spec/public/directory_structure/directory/app/controllers/custom.rb +19 -0
  233. data/spec/public/directory_structure/directory/app/views/base/template.html.erb +1 -0
  234. data/spec/public/directory_structure/directory/app/views/wonderful/template.erb +1 -0
  235. data/spec/public/directory_structure/directory/config/router.rb +3 -0
  236. data/spec/public/directory_structure/directory/log/merb_test.log +562 -0
  237. data/spec/public/directory_structure/directory_spec.rb +44 -0
  238. data/spec/public/logger/logger_spec.rb +181 -0
  239. data/spec/public/logger/spec_helper.rb +1 -0
  240. data/spec/public/reloading/directory/app/controllers/application.rb +3 -0
  241. data/spec/public/reloading/directory/app/controllers/reload.rb +6 -0
  242. data/spec/public/reloading/directory/config/init.rb +2 -0
  243. data/spec/public/reloading/directory/log/merb_test.log +138 -0
  244. data/spec/public/reloading/reload_spec.rb +103 -0
  245. data/spec/public/request/multipart_spec.rb +41 -0
  246. data/spec/public/request/request_spec.rb +228 -0
  247. data/spec/public/router/default_spec.rb +21 -0
  248. data/spec/public/router/deferred_spec.rb +22 -0
  249. data/spec/public/router/fixation_spec.rb +27 -0
  250. data/spec/public/router/fixture/log/merb_test.log +1556 -0
  251. data/spec/public/router/namespace_spec.rb +113 -0
  252. data/spec/public/router/nested_matches_spec.rb +97 -0
  253. data/spec/public/router/nested_resources_spec.rb +41 -0
  254. data/spec/public/router/resource_spec.rb +37 -0
  255. data/spec/public/router/resources_spec.rb +82 -0
  256. data/spec/public/router/spec_helper.rb +90 -0
  257. data/spec/public/router/special_spec.rb +61 -0
  258. data/spec/public/router/string_spec.rb +61 -0
  259. data/spec/public/template/template_spec.rb +104 -0
  260. data/spec/public/template/templates/error.html.erb +2 -0
  261. data/spec/public/template/templates/template.html.erb +1 -0
  262. data/spec/public/template/templates/template.html.myt +1 -0
  263. data/spec/public/test/controller_matchers_spec.rb +402 -0
  264. data/spec/public/test/controllers/controller_assertion_mock.rb +7 -0
  265. data/spec/public/test/controllers/dispatch_controller.rb +11 -0
  266. data/spec/public/test/controllers/spec_helper_controller.rb +38 -0
  267. data/spec/public/test/multipart_request_helper_spec.rb +159 -0
  268. data/spec/public/test/multipart_upload_text_file.txt +1 -0
  269. data/spec/public/test/request_helper_spec.rb +221 -0
  270. data/spec/public/test/route_helper_spec.rb +71 -0
  271. data/spec/public/test/route_matchers_spec.rb +162 -0
  272. data/spec/public/test/view_helper_spec.rb +96 -0
  273. data/spec/public/test/view_matchers_spec.rb +183 -0
  274. data/spec/spec_helper.rb +68 -0
  275. metadata +493 -41
  276. data/README.txt +0 -3
  277. data/lib/extlib.rb +0 -32
  278. data/lib/extlib/assertions.rb +0 -8
  279. data/lib/extlib/blank.rb +0 -42
  280. data/lib/extlib/class.rb +0 -175
  281. data/lib/extlib/hash.rb +0 -410
  282. data/lib/extlib/hook.rb +0 -366
  283. data/lib/extlib/inflection.rb +0 -141
  284. data/lib/extlib/lazy_array.rb +0 -106
  285. data/lib/extlib/mash.rb +0 -143
  286. data/lib/extlib/module.rb +0 -37
  287. data/lib/extlib/object.rb +0 -165
  288. data/lib/extlib/object_space.rb +0 -13
  289. data/lib/extlib/pathname.rb +0 -5
  290. data/lib/extlib/pooling.rb +0 -233
  291. data/lib/extlib/rubygems.rb +0 -38
  292. data/lib/extlib/simple_set.rb +0 -39
  293. data/lib/extlib/string.rb +0 -132
  294. data/lib/extlib/struct.rb +0 -8
  295. data/lib/extlib/tasks/release.rb +0 -9
  296. data/lib/extlib/time.rb +0 -12
  297. data/lib/extlib/version.rb +0 -3
  298. data/lib/extlib/virtual_file.rb +0 -10
@@ -0,0 +1,11 @@
1
+ ==== Public API
2
+ This is the API that is available in your app itself. Anything not in the public API is subject to change.
3
+
4
+ ==== Semipublic API
5
+ This is the API that is guaranteed to be available between components of Merb. If something in the semipublic
6
+ API changes, this will likely require changes in other parts of Merb. Additionally, items in the semipublic
7
+ API can be relied upon for introspection, for testing purposes.
8
+
9
+ For instance, AbstractController#_body should not be used in Merb apps themselves, as it may change, but
10
+ it may be used in other components of Merb and in the Merb tests themselves. Including it in the semipublic
11
+ API is designed to alert Merb's maintainers that changing it will have framework-wide repercussions.
@@ -0,0 +1 @@
1
+ App: <%= catch_content(:for_layout) %>
@@ -0,0 +1,41 @@
1
+ module Merb::Test::Fixtures
2
+
3
+ module Abstract
4
+
5
+ class Testing < Merb::AbstractController
6
+ self._template_root = File.dirname(__FILE__) / "views"
7
+ end
8
+
9
+ class FilterParent < Testing
10
+ before :print_before_filter
11
+
12
+ def print_before_filter
13
+ @before_string = "Before"
14
+ end
15
+ end
16
+
17
+ class FilterChild1 < FilterParent
18
+ before :print_before_filter, :only => :limited
19
+
20
+ def index
21
+ @before_string.to_s + " Index"
22
+ end
23
+
24
+ def limited
25
+ @before_string.to_s + " Limited"
26
+ end
27
+ end
28
+
29
+ class FilterChild2 < FilterParent
30
+
31
+ def index
32
+ @before_string.to_s + " Index"
33
+ end
34
+
35
+ def limited
36
+ @before_string.to_s + " Limited"
37
+ end
38
+ end
39
+
40
+ end
41
+ end
@@ -0,0 +1,54 @@
1
+
2
+
3
+ module Merb::Test::Fixtures
4
+
5
+ module Abstract
6
+
7
+ class SomeModel; end
8
+
9
+ class Testing < Merb::AbstractController
10
+ self._template_root = File.dirname(__FILE__) / "views"
11
+ end
12
+
13
+ class DisplayObject < Testing
14
+ def index
15
+ @obj = SomeModel.new
16
+ display @obj
17
+ end
18
+ end
19
+
20
+ class DisplayObjectWithAction < Testing
21
+ def create
22
+ @obj = SomeModel.new
23
+ display @obj, :new
24
+ end
25
+ end
26
+
27
+ class DisplayObjectWithPath < Testing
28
+ def index
29
+ @obj = SomeModel.new
30
+ display @obj, "test_display/foo.html"
31
+ end
32
+ end
33
+
34
+
35
+ class DisplayObjectWithMultipleRoots < DisplayObject
36
+ self._template_roots << [File.dirname(__FILE__) / "alt_views", :_template_location]
37
+
38
+ def show
39
+ @obj = SomeModel.new
40
+ display @obj, nil, :layout=>"alt"
41
+ end
42
+
43
+ def another
44
+ @obj = SomeModel.new
45
+ display @obj, "test_display/foo.html", :layout=>false
46
+ end
47
+
48
+ def wonderful
49
+ true
50
+ end
51
+ end
52
+ end
53
+
54
+ end
@@ -0,0 +1,193 @@
1
+ # ==== Methodology
2
+ # Each of the controllers tested here tests a discrete, single case. This
3
+ # is to ensure that each test is actually testing exactly what we want,
4
+ # and that other features (or lack thereof), are not causing tests to fail
5
+ # that would otherwise pass.
6
+ module Merb::Test::Fixtures
7
+
8
+ module Abstract
9
+
10
+ class Testing < Merb::AbstractController
11
+ self._template_root = File.dirname(__FILE__) / "views"
12
+ end
13
+
14
+ class TestBeforeFilter < Testing
15
+ before :foo
16
+
17
+ def index
18
+ "#{@x}"
19
+ end
20
+
21
+ private
22
+
23
+ def foo
24
+ @x = "foo filter"
25
+ end
26
+ end
27
+
28
+ class TestAfterFilter < Testing
29
+ after :foo
30
+
31
+ def index
32
+ "index action"
33
+ end
34
+
35
+ private
36
+
37
+ def foo
38
+ @body = "foo filter"
39
+ end
40
+ end
41
+
42
+ class TestSkipFilter < TestBeforeFilter
43
+ skip_before :foo
44
+ end
45
+
46
+ class TestBeforeFilterOrder < TestBeforeFilter
47
+ before :bar
48
+
49
+ def index
50
+ "#{@x}"
51
+ end
52
+
53
+ private
54
+
55
+ def bar
56
+ @x = "bar filter"
57
+ end
58
+ end
59
+
60
+ class TestAfterFilterOrder < TestAfterFilter
61
+ after :bar
62
+
63
+ def index
64
+ "index action"
65
+ end
66
+
67
+ private
68
+
69
+ def bar
70
+ @body = "bar filter"
71
+ end
72
+ end
73
+
74
+ class TestProcFilter < Testing
75
+ before { @x = "proc filter1" }
76
+ before Proc.new { @y = "proc filter2" }
77
+
78
+ def index
79
+ "#{@x} #{@y}"
80
+ end
81
+ end
82
+
83
+ class TestExcludeFilter < Testing
84
+ before :foo, :exclude => :index
85
+ before :bar, :exclude => [:index]
86
+
87
+ def index
88
+ "#{@x} #{@y}"
89
+ end
90
+
91
+ def show
92
+ "#{@x} #{@y}"
93
+ end
94
+
95
+ private
96
+
97
+ def foo
98
+ @x = "foo filter"
99
+ end
100
+
101
+ def bar
102
+ @y = "bar filter"
103
+ end
104
+ end
105
+
106
+ class TestOnlyFilter < Testing
107
+ before :foo, :only => :index
108
+ before :bar, :only => [:index]
109
+
110
+ def index
111
+ "#{@x} #{@y}"
112
+ end
113
+
114
+ def show
115
+ "#{@x} #{@y}"
116
+ end
117
+
118
+ private
119
+
120
+ def foo
121
+ @x = "foo filter"
122
+ end
123
+
124
+ def bar
125
+ @y = "bar filter"
126
+ end
127
+ end
128
+
129
+ class TestConditionalFilterWithMethod < Testing
130
+ before :foo, :if => :bar
131
+
132
+ attr_accessor :bar
133
+
134
+ def index
135
+ "#{@x}"
136
+ end
137
+
138
+ private
139
+ def foo
140
+ @x = "foo filter"
141
+ end
142
+ end
143
+
144
+ class TestConditionalFilterWithProc < Testing
145
+ after :foo, :unless => lambda { |x| x.bar == "bar" }
146
+
147
+ attr_accessor :bar
148
+
149
+ def index
150
+ "index action"
151
+ end
152
+
153
+ private
154
+ def foo
155
+ @body = "foo filter"
156
+ end
157
+ end
158
+
159
+ class TestConditionalFilterWithNoProcOrSymbol < Testing
160
+ after :foo, :unless => true
161
+
162
+ def index
163
+ "index action"
164
+ end
165
+ end
166
+
167
+ class TestBeforeFilterWithArgument < Testing
168
+ before :foo, :with => "bar"
169
+
170
+ def index
171
+ "index action"
172
+ end
173
+
174
+ private
175
+ def foo(bar)
176
+ bar == "bar"
177
+ end
178
+ end
179
+
180
+ class TestBeforeFilterWithArguments < Testing
181
+ before :foo, :with => ["bar", "baz"]
182
+
183
+ def index
184
+ "index action"
185
+ end
186
+
187
+ private
188
+ def foo(bar,baz)
189
+ bar == "bar" && baz == "baz"
190
+ end
191
+ end
192
+ end
193
+ end
@@ -0,0 +1,41 @@
1
+ module Merb::Test::Fixtures
2
+ module Abstract
3
+
4
+ class HelperTesting < Merb::AbstractController
5
+ self._template_root = File.dirname(__FILE__) / "views"
6
+
7
+ def _template_location(context, type = nil, controller = controller_name)
8
+ "helpers/#{File.basename(controller)}/#{context}"
9
+ end
10
+
11
+ def index
12
+ render
13
+ end
14
+ end
15
+
16
+ class Capture < HelperTesting
17
+ end
18
+
19
+ class CaptureWithArgs < HelperTesting
20
+ end
21
+
22
+ class CaptureEq < HelperTesting
23
+ def helper_using_capture(&blk)
24
+ "Beginning... #{capture(&blk)}... Done"
25
+ end
26
+ end
27
+
28
+ module ConcatHelper
29
+ def concatter(&blk)
30
+ concat("Concat", blk.binding)
31
+ end
32
+ end
33
+
34
+ class Concat < HelperTesting
35
+ def index
36
+ render
37
+ end
38
+ end
39
+
40
+ end
41
+ end
@@ -0,0 +1,121 @@
1
+
2
+
3
+ module Merb::Test::Fixtures
4
+
5
+ module Abstract
6
+
7
+ class RenderIt < Merb::AbstractController
8
+ self._template_root = File.dirname(__FILE__) / "views"
9
+
10
+ def _template_location(context, type = nil, controller = controller_name)
11
+ "partial/#{File.basename(controller)}/#{context}"
12
+ end
13
+ end
14
+
15
+ class BasicPartial < RenderIt
16
+
17
+ def index
18
+ render
19
+ end
20
+ end
21
+
22
+ class WithAbsolutePartial < RenderIt
23
+
24
+ def index
25
+ @absolute_partial_path = File.expand_path(File.dirname(__FILE__)) / 'views' / 'partial' / 'with_absolute_partial' / 'partial'
26
+ render
27
+ end
28
+ end
29
+
30
+ class WithPartial < RenderIt
31
+
32
+ def index
33
+ @foo = "With"
34
+ render
35
+ end
36
+ end
37
+
38
+ class WithNilPartial < RenderIt
39
+
40
+ def index
41
+ render
42
+ end
43
+ end
44
+
45
+ class WithAsPartial < RenderIt
46
+
47
+ def index
48
+ @foo = "With and As"
49
+ render
50
+ end
51
+ end
52
+
53
+ class PartialWithCollections < RenderIt
54
+
55
+ def index
56
+ @foo = %w{ c o l l e c t i o n }
57
+ render
58
+ end
59
+ end
60
+
61
+ class PartialWithCollectionsAndAs < RenderIt
62
+
63
+ def index
64
+ @foo = %w{ c o l l e c t i o n }
65
+ render
66
+ end
67
+ end
68
+
69
+ class PartialWithCollectionsAndCounter < RenderIt
70
+ def index
71
+ @foo = %w(1 2 3 4 5)
72
+ render
73
+ end
74
+ end
75
+
76
+ class PartialWithLocals < RenderIt
77
+
78
+ def index
79
+ @foo, @bar = %w{ local variables }
80
+ render
81
+ end
82
+ end
83
+
84
+ class PartialWithBoth < RenderIt
85
+
86
+ def index
87
+ @foo = %w{ c o l l e c t i o n }
88
+ @delimiter = "-"
89
+ render
90
+ end
91
+ end
92
+
93
+ class PartialWithWithAndLocals < RenderIt
94
+
95
+ def index
96
+ @foo, @bar = "with", "and locals"
97
+ render
98
+ end
99
+ end
100
+
101
+ class PartialInAnotherDirectory < RenderIt
102
+
103
+ def index
104
+ render
105
+ end
106
+ end
107
+
108
+ class NestedPartial < RenderIt
109
+ def index
110
+ render
111
+ end
112
+ end
113
+
114
+ class BasicPartialWithMultipleRoots < RenderIt
115
+ self._template_roots << [File.dirname(__FILE__) / "alt_views", :_template_location]
116
+ def index
117
+ render
118
+ end
119
+ end
120
+ end
121
+ end