actionpack 2.3.18 → 3.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of actionpack might be problematic. Click here for more details.

Files changed (513) hide show
  1. data/CHANGELOG +15 -64
  2. data/README +39 -48
  3. data/lib/abstract_controller.rb +22 -0
  4. data/lib/abstract_controller/base.rb +191 -0
  5. data/lib/abstract_controller/callbacks.rb +113 -0
  6. data/lib/abstract_controller/collector.rb +30 -0
  7. data/lib/abstract_controller/compatibility.rb +18 -0
  8. data/lib/abstract_controller/helpers.rb +163 -0
  9. data/lib/abstract_controller/layouts.rb +413 -0
  10. data/lib/abstract_controller/localized_cache.rb +49 -0
  11. data/lib/abstract_controller/logger.rb +13 -0
  12. data/lib/abstract_controller/rendering.rb +238 -0
  13. data/lib/{action_controller → abstract_controller}/translation.rb +1 -1
  14. data/lib/action_controller.rb +68 -102
  15. data/lib/action_controller/base.rb +77 -1409
  16. data/lib/action_controller/caching.rb +58 -45
  17. data/lib/action_controller/caching/actions.rb +100 -114
  18. data/lib/action_controller/caching/fragments.rb +17 -19
  19. data/lib/action_controller/caching/pages.rb +12 -6
  20. data/lib/action_controller/caching/sweeping.rb +42 -0
  21. data/lib/action_controller/deprecated.rb +5 -0
  22. data/lib/action_controller/deprecated/dispatcher.rb +28 -0
  23. data/lib/action_controller/deprecated/integration_test.rb +2 -0
  24. data/lib/action_controller/deprecated/performance_test.rb +1 -0
  25. data/lib/action_controller/metal.rb +125 -0
  26. data/lib/action_controller/metal/compatibility.rb +141 -0
  27. data/lib/action_controller/metal/conditional_get.rb +86 -0
  28. data/lib/action_controller/metal/configuration.rb +28 -0
  29. data/lib/action_controller/metal/cookies.rb +17 -0
  30. data/lib/action_controller/metal/exceptions.rb +46 -0
  31. data/lib/action_controller/metal/flash.rb +28 -0
  32. data/lib/action_controller/metal/head.rb +33 -0
  33. data/lib/action_controller/metal/helpers.rb +116 -0
  34. data/lib/action_controller/metal/hide_actions.rb +50 -0
  35. data/lib/action_controller/{http_authentication.rb → metal/http_authentication.rb} +18 -15
  36. data/lib/action_controller/metal/instrumentation.rb +99 -0
  37. data/lib/action_controller/metal/mime_responds.rb +300 -0
  38. data/lib/action_controller/metal/rack_delegation.rb +35 -0
  39. data/lib/action_controller/metal/redirecting.rb +90 -0
  40. data/lib/action_controller/metal/renderers.rb +95 -0
  41. data/lib/action_controller/metal/rendering.rb +69 -0
  42. data/lib/action_controller/metal/request_forgery_protection.rb +115 -0
  43. data/lib/action_controller/metal/rescue.rb +13 -0
  44. data/lib/action_controller/metal/responder.rb +220 -0
  45. data/lib/action_controller/{session_management.rb → metal/session_management.rb} +5 -14
  46. data/lib/action_controller/{streaming.rb → metal/streaming.rb} +13 -12
  47. data/lib/action_controller/metal/testing.rb +42 -0
  48. data/lib/action_controller/metal/url_for.rb +157 -0
  49. data/lib/action_controller/{verification.rb → metal/verification.rb} +41 -41
  50. data/lib/action_controller/middleware.rb +38 -0
  51. data/lib/action_controller/polymorphic_routes.rb +20 -26
  52. data/lib/action_controller/railtie.rb +30 -0
  53. data/lib/action_controller/railties/subscriber.rb +63 -0
  54. data/lib/action_controller/record_identifier.rb +3 -16
  55. data/lib/action_controller/test_case.rb +156 -18
  56. data/lib/action_controller/url_rewriter.rb +47 -200
  57. data/lib/action_controller/vendor/html-scanner.rb +16 -12
  58. data/lib/action_controller/vendor/html-scanner/html/node.rb +1 -1
  59. data/lib/action_controller/vendor/html-scanner/html/sanitizer.rb +12 -9
  60. data/lib/action_dispatch.rb +88 -0
  61. data/lib/action_dispatch/http/cache.rb +123 -0
  62. data/lib/action_dispatch/http/filter_parameters.rb +98 -0
  63. data/lib/{action_controller → action_dispatch/http}/headers.rb +8 -8
  64. data/lib/action_dispatch/http/mime_negotiation.rb +101 -0
  65. data/lib/{action_controller → action_dispatch/http}/mime_type.rb +30 -11
  66. data/lib/{action_controller → action_dispatch/http}/mime_types.rb +5 -3
  67. data/lib/action_dispatch/http/parameters.rb +49 -0
  68. data/lib/action_dispatch/http/request.rb +223 -0
  69. data/lib/action_dispatch/http/response.rb +209 -0
  70. data/lib/action_dispatch/http/upload.rb +48 -0
  71. data/lib/action_dispatch/http/url.rb +129 -0
  72. data/lib/action_dispatch/middleware/callbacks.rb +50 -0
  73. data/lib/action_dispatch/middleware/cascade.rb +29 -0
  74. data/lib/action_dispatch/middleware/cookies.rb +216 -0
  75. data/lib/{action_controller → action_dispatch/middleware}/flash.rb +51 -90
  76. data/lib/action_dispatch/middleware/head.rb +18 -0
  77. data/lib/action_dispatch/middleware/params_parser.rb +78 -0
  78. data/lib/action_dispatch/middleware/rescue.rb +26 -0
  79. data/lib/action_dispatch/middleware/session/abstract_store.rb +209 -0
  80. data/lib/{action_controller → action_dispatch/middleware}/session/cookie_store.rb +56 -60
  81. data/lib/action_dispatch/middleware/session/mem_cache_store.rb +47 -0
  82. data/lib/action_dispatch/middleware/show_exceptions.rb +173 -0
  83. data/lib/{action_controller/middleware_stack.rb → action_dispatch/middleware/stack.rb} +23 -13
  84. data/lib/action_dispatch/middleware/static.rb +44 -0
  85. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/_request_and_response.erb +10 -3
  86. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/_trace.erb +4 -4
  87. data/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb +10 -0
  88. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/layout.erb +2 -2
  89. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/missing_template.erb +0 -0
  90. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/routing_error.erb +0 -0
  91. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/template_error.erb +3 -3
  92. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/unknown_action.erb +0 -0
  93. data/lib/action_dispatch/railtie.rb +15 -0
  94. data/lib/action_dispatch/routing.rb +217 -0
  95. data/lib/action_dispatch/routing/deprecated_mapper.rb +877 -0
  96. data/lib/action_dispatch/routing/mapper.rb +649 -0
  97. data/lib/action_dispatch/routing/route.rb +55 -0
  98. data/lib/action_dispatch/routing/route_set.rb +445 -0
  99. data/lib/action_dispatch/testing/assertions.rb +21 -0
  100. data/lib/action_dispatch/testing/assertions/dom.rb +37 -0
  101. data/lib/{action_controller/assertions/model_assertions.rb → action_dispatch/testing/assertions/model.rb} +2 -4
  102. data/lib/action_dispatch/testing/assertions/response.rb +154 -0
  103. data/lib/{action_controller/assertions/routing_assertions.rb → action_dispatch/testing/assertions/routing.rb} +72 -34
  104. data/lib/{action_controller/assertions/selector_assertions.rb → action_dispatch/testing/assertions/selector.rb} +14 -11
  105. data/lib/{action_controller/assertions/tag_assertions.rb → action_dispatch/testing/assertions/tag.rb} +25 -14
  106. data/lib/{action_controller → action_dispatch/testing}/integration.rb +173 -406
  107. data/lib/action_dispatch/testing/performance_test.rb +17 -0
  108. data/lib/action_dispatch/testing/test_process.rb +42 -0
  109. data/lib/action_dispatch/testing/test_request.rb +83 -0
  110. data/lib/action_dispatch/testing/test_response.rb +136 -0
  111. data/lib/action_pack/version.rb +3 -3
  112. data/lib/action_view.rb +29 -26
  113. data/lib/action_view/base.rb +101 -148
  114. data/lib/action_view/context.rb +44 -0
  115. data/lib/action_view/helpers.rb +6 -4
  116. data/lib/action_view/helpers/{active_record_helper.rb → active_model_helper.rb} +63 -63
  117. data/lib/action_view/helpers/asset_tag_helper.rb +166 -31
  118. data/lib/action_view/helpers/cache_helper.rb +1 -1
  119. data/lib/action_view/helpers/capture_helper.rb +40 -8
  120. data/lib/action_view/helpers/csrf_helper.rb +2 -4
  121. data/lib/action_view/helpers/date_helper.rb +14 -15
  122. data/lib/action_view/helpers/form_helper.rb +121 -24
  123. data/lib/action_view/helpers/form_options_helper.rb +26 -25
  124. data/lib/action_view/helpers/form_tag_helper.rb +42 -33
  125. data/lib/action_view/helpers/javascript_helper.rb +1 -109
  126. data/lib/action_view/helpers/number_helper.rb +4 -1
  127. data/lib/action_view/helpers/prototype_helper.rb +75 -499
  128. data/lib/action_view/helpers/raw_output_helper.rb +1 -1
  129. data/lib/action_view/helpers/record_tag_helper.rb +3 -3
  130. data/lib/action_view/helpers/sanitize_helper.rb +3 -2
  131. data/lib/action_view/helpers/scriptaculous_helper.rb +89 -53
  132. data/lib/action_view/helpers/tag_helper.rb +12 -13
  133. data/lib/action_view/helpers/text_helper.rb +33 -38
  134. data/lib/action_view/helpers/translation_helper.rb +11 -35
  135. data/lib/action_view/helpers/url_helper.rb +140 -134
  136. data/lib/action_view/locale/en.yml +34 -28
  137. data/lib/action_view/paths.rb +27 -24
  138. data/lib/action_view/railtie.rb +17 -0
  139. data/lib/action_view/railties/subscriber.rb +24 -0
  140. data/lib/action_view/{partials.rb → render/partials.rb} +161 -51
  141. data/lib/action_view/render/rendering.rb +117 -0
  142. data/lib/action_view/template.rb +88 -217
  143. data/lib/action_view/template/error.rb +105 -0
  144. data/lib/action_view/template/handler.rb +41 -0
  145. data/lib/action_view/template/handlers.rb +54 -0
  146. data/lib/action_view/{template_handlers → template/handlers}/builder.rb +6 -6
  147. data/lib/action_view/template/handlers/erb.rb +58 -0
  148. data/lib/action_view/{template_handlers → template/handlers}/rjs.rb +8 -3
  149. data/lib/action_view/template/resolver.rb +164 -0
  150. data/lib/action_view/template/text.rb +40 -0
  151. data/lib/action_view/test_case.rb +18 -18
  152. metadata +165 -420
  153. data/RUNNING_UNIT_TESTS +0 -24
  154. data/Rakefile +0 -158
  155. data/install.rb +0 -30
  156. data/lib/action_controller/assertions/dom_assertions.rb +0 -55
  157. data/lib/action_controller/assertions/response_assertions.rb +0 -169
  158. data/lib/action_controller/benchmarking.rb +0 -107
  159. data/lib/action_controller/caching/sweeper.rb +0 -45
  160. data/lib/action_controller/cgi_ext.rb +0 -15
  161. data/lib/action_controller/cgi_ext/cookie.rb +0 -112
  162. data/lib/action_controller/cgi_ext/query_extension.rb +0 -22
  163. data/lib/action_controller/cgi_ext/stdinput.rb +0 -24
  164. data/lib/action_controller/cgi_process.rb +0 -77
  165. data/lib/action_controller/cookies.rb +0 -197
  166. data/lib/action_controller/dispatcher.rb +0 -133
  167. data/lib/action_controller/failsafe.rb +0 -87
  168. data/lib/action_controller/filters.rb +0 -680
  169. data/lib/action_controller/helpers.rb +0 -225
  170. data/lib/action_controller/layout.rb +0 -286
  171. data/lib/action_controller/middlewares.rb +0 -14
  172. data/lib/action_controller/mime_responds.rb +0 -193
  173. data/lib/action_controller/params_parser.rb +0 -77
  174. data/lib/action_controller/performance_test.rb +0 -15
  175. data/lib/action_controller/rack_lint_patch.rb +0 -36
  176. data/lib/action_controller/reloader.rb +0 -54
  177. data/lib/action_controller/request.rb +0 -518
  178. data/lib/action_controller/request_forgery_protection.rb +0 -116
  179. data/lib/action_controller/rescue.rb +0 -183
  180. data/lib/action_controller/resources.rb +0 -682
  181. data/lib/action_controller/response.rb +0 -237
  182. data/lib/action_controller/routing.rb +0 -388
  183. data/lib/action_controller/routing/builder.rb +0 -197
  184. data/lib/action_controller/routing/optimisations.rb +0 -130
  185. data/lib/action_controller/routing/recognition_optimisation.rb +0 -167
  186. data/lib/action_controller/routing/route.rb +0 -265
  187. data/lib/action_controller/routing/route_set.rb +0 -503
  188. data/lib/action_controller/routing/routing_ext.rb +0 -49
  189. data/lib/action_controller/routing/segments.rb +0 -343
  190. data/lib/action_controller/session/abstract_store.rb +0 -276
  191. data/lib/action_controller/session/mem_cache_store.rb +0 -60
  192. data/lib/action_controller/status_codes.rb +0 -88
  193. data/lib/action_controller/string_coercion.rb +0 -29
  194. data/lib/action_controller/templates/rescues/diagnostics.erb +0 -11
  195. data/lib/action_controller/test_process.rb +0 -580
  196. data/lib/action_controller/uploaded_file.rb +0 -44
  197. data/lib/action_view/helpers/benchmark_helper.rb +0 -54
  198. data/lib/action_view/inline_template.rb +0 -19
  199. data/lib/action_view/reloadable_template.rb +0 -117
  200. data/lib/action_view/renderable.rb +0 -109
  201. data/lib/action_view/renderable_partial.rb +0 -53
  202. data/lib/action_view/template_error.rb +0 -99
  203. data/lib/action_view/template_handler.rb +0 -34
  204. data/lib/action_view/template_handlers.rb +0 -48
  205. data/lib/action_view/template_handlers/erb.rb +0 -25
  206. data/lib/actionpack.rb +0 -2
  207. data/test/abstract_unit.rb +0 -78
  208. data/test/active_record_unit.rb +0 -104
  209. data/test/activerecord/active_record_store_test.rb +0 -221
  210. data/test/activerecord/render_partial_with_record_identification_test.rb +0 -188
  211. data/test/adv_attr_test.rb +0 -20
  212. data/test/controller/action_pack_assertions_test.rb +0 -545
  213. data/test/controller/addresses_render_test.rb +0 -37
  214. data/test/controller/assert_select_test.rb +0 -735
  215. data/test/controller/base_test.rb +0 -217
  216. data/test/controller/benchmark_test.rb +0 -32
  217. data/test/controller/caching_test.rb +0 -743
  218. data/test/controller/capture_test.rb +0 -66
  219. data/test/controller/content_type_test.rb +0 -178
  220. data/test/controller/controller_fixtures/app/controllers/admin/user_controller.rb +0 -0
  221. data/test/controller/controller_fixtures/app/controllers/user_controller.rb +0 -0
  222. data/test/controller/controller_fixtures/vendor/plugins/bad_plugin/lib/plugin_controller.rb +0 -0
  223. data/test/controller/cookie_test.rb +0 -208
  224. data/test/controller/deprecation/deprecated_base_methods_test.rb +0 -32
  225. data/test/controller/dispatcher_test.rb +0 -144
  226. data/test/controller/dom_assertions_test.rb +0 -53
  227. data/test/controller/failsafe_test.rb +0 -60
  228. data/test/controller/fake_controllers.rb +0 -33
  229. data/test/controller/fake_models.rb +0 -19
  230. data/test/controller/filter_params_test.rb +0 -52
  231. data/test/controller/filters_test.rb +0 -885
  232. data/test/controller/flash_test.rb +0 -174
  233. data/test/controller/header_test.rb +0 -14
  234. data/test/controller/helper_test.rb +0 -224
  235. data/test/controller/html-scanner/cdata_node_test.rb +0 -15
  236. data/test/controller/html-scanner/document_test.rb +0 -148
  237. data/test/controller/html-scanner/node_test.rb +0 -89
  238. data/test/controller/html-scanner/sanitizer_test.rb +0 -300
  239. data/test/controller/html-scanner/tag_node_test.rb +0 -238
  240. data/test/controller/html-scanner/text_node_test.rb +0 -50
  241. data/test/controller/html-scanner/tokenizer_test.rb +0 -131
  242. data/test/controller/http_basic_authentication_test.rb +0 -113
  243. data/test/controller/http_digest_authentication_test.rb +0 -254
  244. data/test/controller/integration_test.rb +0 -526
  245. data/test/controller/layout_test.rb +0 -215
  246. data/test/controller/localized_templates_test.rb +0 -24
  247. data/test/controller/logging_test.rb +0 -46
  248. data/test/controller/middleware_stack_test.rb +0 -90
  249. data/test/controller/mime_responds_test.rb +0 -536
  250. data/test/controller/mime_type_test.rb +0 -93
  251. data/test/controller/output_escaping_test.rb +0 -19
  252. data/test/controller/polymorphic_routes_test.rb +0 -297
  253. data/test/controller/rack_test.rb +0 -308
  254. data/test/controller/record_identifier_test.rb +0 -139
  255. data/test/controller/redirect_test.rb +0 -285
  256. data/test/controller/reloader_test.rb +0 -125
  257. data/test/controller/render_test.rb +0 -1783
  258. data/test/controller/request/json_params_parsing_test.rb +0 -65
  259. data/test/controller/request/multipart_params_parsing_test.rb +0 -177
  260. data/test/controller/request/query_string_parsing_test.rb +0 -129
  261. data/test/controller/request/test_request_test.rb +0 -35
  262. data/test/controller/request/url_encoded_params_parsing_test.rb +0 -146
  263. data/test/controller/request/xml_params_parsing_test.rb +0 -103
  264. data/test/controller/request_forgery_protection_test.rb +0 -233
  265. data/test/controller/request_test.rb +0 -398
  266. data/test/controller/rescue_test.rb +0 -541
  267. data/test/controller/resources_test.rb +0 -1393
  268. data/test/controller/routing_test.rb +0 -2592
  269. data/test/controller/selector_test.rb +0 -628
  270. data/test/controller/send_file_test.rb +0 -171
  271. data/test/controller/session/abstract_store_test.rb +0 -64
  272. data/test/controller/session/cookie_store_test.rb +0 -354
  273. data/test/controller/session/mem_cache_store_test.rb +0 -187
  274. data/test/controller/session/test_session_test.rb +0 -58
  275. data/test/controller/test_test.rb +0 -700
  276. data/test/controller/translation_test.rb +0 -26
  277. data/test/controller/url_rewriter_test.rb +0 -395
  278. data/test/controller/verification_test.rb +0 -270
  279. data/test/controller/view_paths_test.rb +0 -141
  280. data/test/controller/webservice_test.rb +0 -273
  281. data/test/fixtures/_top_level_partial.html.erb +0 -1
  282. data/test/fixtures/_top_level_partial_only.erb +0 -1
  283. data/test/fixtures/addresses/list.erb +0 -1
  284. data/test/fixtures/alternate_helpers/foo_helper.rb +0 -3
  285. data/test/fixtures/bad_customers/_bad_customer.html.erb +0 -1
  286. data/test/fixtures/companies.yml +0 -24
  287. data/test/fixtures/company.rb +0 -10
  288. data/test/fixtures/content_type/render_default_content_types_for_respond_to.rhtml +0 -1
  289. data/test/fixtures/content_type/render_default_for_rhtml.rhtml +0 -1
  290. data/test/fixtures/content_type/render_default_for_rjs.rjs +0 -1
  291. data/test/fixtures/content_type/render_default_for_rxml.rxml +0 -1
  292. data/test/fixtures/customers/_customer.html.erb +0 -1
  293. data/test/fixtures/db_definitions/sqlite.sql +0 -49
  294. data/test/fixtures/developer.rb +0 -9
  295. data/test/fixtures/developers.yml +0 -21
  296. data/test/fixtures/developers/_developer.erb +0 -1
  297. data/test/fixtures/developers_projects.yml +0 -13
  298. data/test/fixtures/failsafe/500.html +0 -1
  299. data/test/fixtures/fun/games/_game.erb +0 -1
  300. data/test/fixtures/fun/games/hello_world.erb +0 -1
  301. data/test/fixtures/fun/serious/games/_game.erb +0 -1
  302. data/test/fixtures/functional_caching/_partial.erb +0 -3
  303. data/test/fixtures/functional_caching/formatted_fragment_cached.html.erb +0 -3
  304. data/test/fixtures/functional_caching/formatted_fragment_cached.js.rjs +0 -6
  305. data/test/fixtures/functional_caching/formatted_fragment_cached.xml.builder +0 -5
  306. data/test/fixtures/functional_caching/fragment_cached.html.erb +0 -2
  307. data/test/fixtures/functional_caching/html_fragment_cached_with_partial.html.erb +0 -1
  308. data/test/fixtures/functional_caching/inline_fragment_cached.html.erb +0 -2
  309. data/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs +0 -1
  310. data/test/fixtures/good_customers/_good_customer.html.erb +0 -1
  311. data/test/fixtures/helpers/abc_helper.rb +0 -5
  312. data/test/fixtures/helpers/fun/games_helper.rb +0 -3
  313. data/test/fixtures/helpers/fun/pdf_helper.rb +0 -3
  314. data/test/fixtures/layout_tests/abs_path_layout.rhtml +0 -1
  315. data/test/fixtures/layout_tests/alt/hello.rhtml +0 -1
  316. data/test/fixtures/layout_tests/alt/layouts/alt.rhtml +0 -0
  317. data/test/fixtures/layout_tests/layouts/controller_name_space/nested.rhtml +0 -1
  318. data/test/fixtures/layout_tests/layouts/item.rhtml +0 -1
  319. data/test/fixtures/layout_tests/layouts/layout_test.rhtml +0 -1
  320. data/test/fixtures/layout_tests/layouts/multiple_extensions.html.erb +0 -1
  321. data/test/fixtures/layout_tests/layouts/third_party_template_library.mab +0 -1
  322. data/test/fixtures/layout_tests/views/hello.rhtml +0 -1
  323. data/test/fixtures/layouts/_column.html.erb +0 -2
  324. data/test/fixtures/layouts/block_with_layout.erb +0 -3
  325. data/test/fixtures/layouts/builder.builder +0 -3
  326. data/test/fixtures/layouts/default_html.html.erb +0 -1
  327. data/test/fixtures/layouts/partial_with_layout.erb +0 -3
  328. data/test/fixtures/layouts/standard.erb +0 -1
  329. data/test/fixtures/layouts/talk_from_action.erb +0 -2
  330. data/test/fixtures/layouts/xhr.html.erb +0 -2
  331. data/test/fixtures/layouts/yield.erb +0 -2
  332. data/test/fixtures/localized/hello_world.de.html +0 -1
  333. data/test/fixtures/localized/hello_world.en.html +0 -1
  334. data/test/fixtures/mascot.rb +0 -3
  335. data/test/fixtures/mascots.yml +0 -4
  336. data/test/fixtures/mascots/_mascot.html.erb +0 -1
  337. data/test/fixtures/multipart/binary_file +0 -0
  338. data/test/fixtures/multipart/boundary_problem_file +0 -10
  339. data/test/fixtures/multipart/bracketed_param +0 -5
  340. data/test/fixtures/multipart/empty +0 -10
  341. data/test/fixtures/multipart/hello.txt +0 -1
  342. data/test/fixtures/multipart/large_text_file +0 -10
  343. data/test/fixtures/multipart/mixed_files +0 -0
  344. data/test/fixtures/multipart/mona_lisa.jpg +0 -0
  345. data/test/fixtures/multipart/none +0 -9
  346. data/test/fixtures/multipart/single_parameter +0 -5
  347. data/test/fixtures/multipart/text_file +0 -10
  348. data/test/fixtures/override/test/hello_world.erb +0 -1
  349. data/test/fixtures/override2/layouts/test/sub.erb +0 -1
  350. data/test/fixtures/post_test/layouts/post.html.erb +0 -1
  351. data/test/fixtures/post_test/layouts/super_post.iphone.erb +0 -1
  352. data/test/fixtures/post_test/post/index.html.erb +0 -1
  353. data/test/fixtures/post_test/post/index.iphone.erb +0 -1
  354. data/test/fixtures/post_test/super_post/index.html.erb +0 -1
  355. data/test/fixtures/post_test/super_post/index.iphone.erb +0 -1
  356. data/test/fixtures/project.rb +0 -3
  357. data/test/fixtures/projects.yml +0 -7
  358. data/test/fixtures/projects/_project.erb +0 -1
  359. data/test/fixtures/public/404.html +0 -1
  360. data/test/fixtures/public/500.da.html +0 -1
  361. data/test/fixtures/public/500.html +0 -1
  362. data/test/fixtures/public/absolute/test.css +0 -23
  363. data/test/fixtures/public/absolute/test.js +0 -63
  364. data/test/fixtures/public/images/rails.png +0 -0
  365. data/test/fixtures/public/javascripts/application.js +0 -1
  366. data/test/fixtures/public/javascripts/bank.js +0 -1
  367. data/test/fixtures/public/javascripts/controls.js +0 -1
  368. data/test/fixtures/public/javascripts/dragdrop.js +0 -1
  369. data/test/fixtures/public/javascripts/effects.js +0 -1
  370. data/test/fixtures/public/javascripts/prototype.js +0 -1
  371. data/test/fixtures/public/javascripts/robber.js +0 -1
  372. data/test/fixtures/public/javascripts/subdir/subdir.js +0 -1
  373. data/test/fixtures/public/javascripts/version.1.0.js +0 -1
  374. data/test/fixtures/public/stylesheets/bank.css +0 -1
  375. data/test/fixtures/public/stylesheets/robber.css +0 -1
  376. data/test/fixtures/public/stylesheets/subdir/subdir.css +0 -1
  377. data/test/fixtures/public/stylesheets/version.1.0.css +0 -1
  378. data/test/fixtures/quiz/questions/_question.html.erb +0 -1
  379. data/test/fixtures/replies.yml +0 -15
  380. data/test/fixtures/replies/_reply.erb +0 -1
  381. data/test/fixtures/reply.rb +0 -7
  382. data/test/fixtures/respond_to/all_types_with_layout.html.erb +0 -1
  383. data/test/fixtures/respond_to/all_types_with_layout.js.rjs +0 -1
  384. data/test/fixtures/respond_to/custom_constant_handling_without_block.mobile.erb +0 -1
  385. data/test/fixtures/respond_to/iphone_with_html_response_type.html.erb +0 -1
  386. data/test/fixtures/respond_to/iphone_with_html_response_type.iphone.erb +0 -1
  387. data/test/fixtures/respond_to/layouts/missing.html.erb +0 -1
  388. data/test/fixtures/respond_to/layouts/standard.html.erb +0 -1
  389. data/test/fixtures/respond_to/layouts/standard.iphone.erb +0 -1
  390. data/test/fixtures/respond_to/using_defaults.html.erb +0 -1
  391. data/test/fixtures/respond_to/using_defaults.js.rjs +0 -1
  392. data/test/fixtures/respond_to/using_defaults.xml.builder +0 -1
  393. data/test/fixtures/respond_to/using_defaults_with_type_list.html.erb +0 -1
  394. data/test/fixtures/respond_to/using_defaults_with_type_list.js.rjs +0 -1
  395. data/test/fixtures/respond_to/using_defaults_with_type_list.xml.builder +0 -1
  396. data/test/fixtures/scope/test/modgreet.erb +0 -1
  397. data/test/fixtures/session_autoload_test/session_autoload_test/foo.rb +0 -10
  398. data/test/fixtures/shared.html.erb +0 -1
  399. data/test/fixtures/symlink_parent/symlinked_layout.erb +0 -5
  400. data/test/fixtures/test/_counter.html.erb +0 -1
  401. data/test/fixtures/test/_customer.erb +0 -1
  402. data/test/fixtures/test/_customer_counter.erb +0 -1
  403. data/test/fixtures/test/_customer_counter_with_as.erb +0 -1
  404. data/test/fixtures/test/_customer_greeting.erb +0 -1
  405. data/test/fixtures/test/_customer_with_var.erb +0 -1
  406. data/test/fixtures/test/_form.erb +0 -1
  407. data/test/fixtures/test/_from_helper.erb +0 -1
  408. data/test/fixtures/test/_hash_greeting.erb +0 -1
  409. data/test/fixtures/test/_hash_object.erb +0 -2
  410. data/test/fixtures/test/_hello.builder +0 -1
  411. data/test/fixtures/test/_labelling_form.erb +0 -1
  412. data/test/fixtures/test/_layout_for_block_with_args.html.erb +0 -3
  413. data/test/fixtures/test/_layout_for_partial.html.erb +0 -3
  414. data/test/fixtures/test/_local_inspector.html.erb +0 -1
  415. data/test/fixtures/test/_one.html.erb +0 -1
  416. data/test/fixtures/test/_partial.erb +0 -1
  417. data/test/fixtures/test/_partial.html.erb +0 -1
  418. data/test/fixtures/test/_partial.js.erb +0 -1
  419. data/test/fixtures/test/_partial_for_use_in_layout.html.erb +0 -1
  420. data/test/fixtures/test/_partial_only.erb +0 -1
  421. data/test/fixtures/test/_partial_with_only_html_version.html.erb +0 -1
  422. data/test/fixtures/test/_person.erb +0 -2
  423. data/test/fixtures/test/_raise.html.erb +0 -1
  424. data/test/fixtures/test/_two.html.erb +0 -1
  425. data/test/fixtures/test/_utf8_partial.html.erb +0 -1
  426. data/test/fixtures/test/_utf8_partial_magic.html.erb +0 -2
  427. data/test/fixtures/test/action_talk_to_layout.erb +0 -2
  428. data/test/fixtures/test/array_translation.erb +0 -1
  429. data/test/fixtures/test/calling_partial_with_layout.html.erb +0 -1
  430. data/test/fixtures/test/capturing.erb +0 -4
  431. data/test/fixtures/test/content_for.erb +0 -2
  432. data/test/fixtures/test/content_for_concatenated.erb +0 -3
  433. data/test/fixtures/test/content_for_with_parameter.erb +0 -2
  434. data/test/fixtures/test/delete_with_js.rjs +0 -2
  435. data/test/fixtures/test/dont_pick_me +0 -1
  436. data/test/fixtures/test/dot.directory/render_file_with_ivar.erb +0 -1
  437. data/test/fixtures/test/enum_rjs_test.rjs +0 -6
  438. data/test/fixtures/test/formatted_html_erb.html.erb +0 -1
  439. data/test/fixtures/test/formatted_xml_erb.builder +0 -1
  440. data/test/fixtures/test/formatted_xml_erb.html.erb +0 -1
  441. data/test/fixtures/test/formatted_xml_erb.xml.erb +0 -1
  442. data/test/fixtures/test/greeting.erb +0 -1
  443. data/test/fixtures/test/greeting.js.rjs +0 -1
  444. data/test/fixtures/test/hello.builder +0 -4
  445. data/test/fixtures/test/hello_world.da.html.erb +0 -1
  446. data/test/fixtures/test/hello_world.erb +0 -1
  447. data/test/fixtures/test/hello_world.erb~ +0 -1
  448. data/test/fixtures/test/hello_world.pt-BR.html.erb +0 -1
  449. data/test/fixtures/test/hello_world_container.builder +0 -3
  450. data/test/fixtures/test/hello_world_from_rxml.builder +0 -4
  451. data/test/fixtures/test/hello_world_with_layout_false.erb +0 -1
  452. data/test/fixtures/test/hello_xml_world.builder +0 -11
  453. data/test/fixtures/test/hyphen-ated.erb +0 -1
  454. data/test/fixtures/test/implicit_content_type.atom.builder +0 -2
  455. data/test/fixtures/test/list.erb +0 -1
  456. data/test/fixtures/test/malformed/malformed.en.html.erb~ +0 -1
  457. data/test/fixtures/test/malformed/malformed.erb~ +0 -1
  458. data/test/fixtures/test/malformed/malformed.html.erb~ +0 -1
  459. data/test/fixtures/test/nested_layout.erb +0 -3
  460. data/test/fixtures/test/non_erb_block_content_for.builder +0 -4
  461. data/test/fixtures/test/potential_conflicts.erb +0 -4
  462. data/test/fixtures/test/render_explicit_html_template.js.rjs +0 -1
  463. data/test/fixtures/test/render_file_from_template.html.erb +0 -1
  464. data/test/fixtures/test/render_file_with_ivar.erb +0 -1
  465. data/test/fixtures/test/render_file_with_locals.erb +0 -1
  466. data/test/fixtures/test/render_implicit_html_template.js.rjs +0 -1
  467. data/test/fixtures/test/render_implicit_html_template_from_xhr_request.da.html.erb +0 -1
  468. data/test/fixtures/test/render_implicit_html_template_from_xhr_request.html.erb +0 -1
  469. data/test/fixtures/test/render_implicit_js_template_without_layout.js.erb +0 -1
  470. data/test/fixtures/test/render_to_string_test.erb +0 -1
  471. data/test/fixtures/test/scoped_array_translation.erb +0 -1
  472. data/test/fixtures/test/sub_template_raise.html.erb +0 -1
  473. data/test/fixtures/test/template.erb +0 -1
  474. data/test/fixtures/test/translation.erb +0 -1
  475. data/test/fixtures/test/update_element_with_capture.erb +0 -9
  476. data/test/fixtures/test/using_layout_around_block.html.erb +0 -1
  477. data/test/fixtures/test/using_layout_around_block_with_args.html.erb +0 -1
  478. data/test/fixtures/test/utf8.html.erb +0 -4
  479. data/test/fixtures/test/utf8_magic.html.erb +0 -5
  480. data/test/fixtures/test/utf8_magic_with_bare_partial.html.erb +0 -5
  481. data/test/fixtures/topic.rb +0 -3
  482. data/test/fixtures/topics.yml +0 -22
  483. data/test/fixtures/topics/_topic.html.erb +0 -1
  484. data/test/template/active_record_helper_i18n_test.rb +0 -51
  485. data/test/template/active_record_helper_test.rb +0 -302
  486. data/test/template/asset_tag_helper_test.rb +0 -770
  487. data/test/template/atom_feed_helper_test.rb +0 -315
  488. data/test/template/benchmark_helper_test.rb +0 -86
  489. data/test/template/compiled_templates_test.rb +0 -204
  490. data/test/template/date_helper_i18n_test.rb +0 -121
  491. data/test/template/date_helper_test.rb +0 -2603
  492. data/test/template/erb_util_test.rb +0 -36
  493. data/test/template/form_helper_test.rb +0 -1447
  494. data/test/template/form_options_helper_i18n_test.rb +0 -27
  495. data/test/template/form_options_helper_test.rb +0 -811
  496. data/test/template/form_tag_helper_test.rb +0 -356
  497. data/test/template/javascript_helper_test.rb +0 -106
  498. data/test/template/number_helper_i18n_test.rb +0 -69
  499. data/test/template/number_helper_test.rb +0 -132
  500. data/test/template/prototype_helper_test.rb +0 -639
  501. data/test/template/raw_output_helper_test.rb +0 -21
  502. data/test/template/record_tag_helper_test.rb +0 -58
  503. data/test/template/render_test.rb +0 -329
  504. data/test/template/sanitize_helper_test.rb +0 -57
  505. data/test/template/scriptaculous_helper_test.rb +0 -90
  506. data/test/template/tag_helper_test.rb +0 -98
  507. data/test/template/template_test.rb +0 -32
  508. data/test/template/test_test.rb +0 -54
  509. data/test/template/text_helper_test.rb +0 -601
  510. data/test/template/translation_helper_test.rb +0 -95
  511. data/test/template/url_helper_test.rb +0 -641
  512. data/test/testing_sandbox.rb +0 -15
  513. data/test/view/test_case_test.rb +0 -176
@@ -0,0 +1,49 @@
1
+ module AbstractController
2
+ class HashKey
3
+ @hash_keys = Hash.new {|h,k| h[k] = Hash.new {|sh,sk| sh[sk] = {} } }
4
+
5
+ def self.get(klass, formats, locale)
6
+ @hash_keys[klass][formats][locale] ||= new(klass, formats, locale)
7
+ end
8
+
9
+ attr_accessor :hash
10
+ def initialize(klass, formats, locale)
11
+ @formats, @locale = formats, locale
12
+ @hash = [formats, locale].hash
13
+ end
14
+
15
+ alias_method :eql?, :equal?
16
+
17
+ def inspect
18
+ "#<HashKey -- formats: #{@formats.inspect} locale: #{@locale.inspect}>"
19
+ end
20
+ end
21
+
22
+ module LocalizedCache
23
+ extend ActiveSupport::Concern
24
+
25
+ module ClassMethods
26
+ def clear_template_caches!
27
+ ActionView::Partials::PartialRenderer::TEMPLATES.clear
28
+ template_cache.clear
29
+ super
30
+ end
31
+
32
+ def template_cache
33
+ @template_cache ||= Hash.new {|h,k| h[k] = {} }
34
+ end
35
+ end
36
+
37
+ def render(*args)
38
+ Thread.current[:format_locale_key] = HashKey.get(self.class, formats, I18n.locale)
39
+ super
40
+ end
41
+
42
+ private
43
+
44
+ def with_template_cache(name)
45
+ self.class.template_cache[Thread.current[:format_locale_key]][name] ||= super
46
+ end
47
+
48
+ end
49
+ end
@@ -0,0 +1,13 @@
1
+ require 'active_support/core_ext/logger'
2
+ require 'active_support/benchmarkable'
3
+
4
+ module AbstractController
5
+ module Logger
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ cattr_accessor :logger
10
+ extend ActiveSupport::Benchmarkable
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,238 @@
1
+ require "abstract_controller/base"
2
+ require 'active_support/core_ext/class/attribute'
3
+ require 'active_support/core_ext/module/delegation'
4
+ require 'active_support/core_ext/array/wrap'
5
+
6
+ module AbstractController
7
+ class DoubleRenderError < Error
8
+ DEFAULT_MESSAGE = "Render and/or redirect were called multiple times in this action. Please note that you may only call render OR redirect, and at most once per action. Also note that neither redirect nor render terminate execution of the action, so if you want to exit an action after redirecting, you need to do something like \"redirect_to(...) and return\"."
9
+
10
+ def initialize(message = nil)
11
+ super(message || DEFAULT_MESSAGE)
12
+ end
13
+ end
14
+
15
+ module Rendering
16
+ extend ActiveSupport::Concern
17
+
18
+ included do
19
+ class_attribute :_view_paths
20
+ delegate :_view_paths, :to => :'self.class'
21
+ self._view_paths = ActionView::PathSet.new
22
+ end
23
+
24
+ # An instance of a view class. The default view class is ActionView::Base
25
+ #
26
+ # The view class must have the following methods:
27
+ # View.for_controller[controller] Create a new ActionView instance for a
28
+ # controller
29
+ # View#render_partial[options]
30
+ # - responsible for setting options[:_template]
31
+ # - Returns String with the rendered partial
32
+ # options<Hash>:: see _render_partial in ActionView::Base
33
+ # View#render_template[template, layout, options, partial]
34
+ # - Returns String with the rendered template
35
+ # template<ActionView::Template>:: The template to render
36
+ # layout<ActionView::Template>:: The layout to render around the template
37
+ # options<Hash>:: See _render_template_with_layout in ActionView::Base
38
+ # partial<Boolean>:: Whether or not the template to render is a partial
39
+ #
40
+ # Override this method in a to change the default behavior.
41
+ def view_context
42
+ @_view_context ||= ActionView::Base.for_controller(self)
43
+ end
44
+
45
+ # Mostly abstracts the fact that calling render twice is a DoubleRenderError.
46
+ # Delegates render_to_body and sticks the result in self.response_body.
47
+ def render(*args, &block)
48
+ options = _normalize_options(*args, &block)
49
+ self.response_body = render_to_body(options)
50
+ end
51
+
52
+ # Raw rendering of a template to a Rack-compatible body.
53
+ #
54
+ # ==== Options
55
+ # _partial_object<Object>:: The object that is being rendered. If this
56
+ # exists, we are in the special case of rendering an object as a partial.
57
+ #
58
+ # :api: plugin
59
+ def render_to_body(options = {})
60
+ # TODO: Refactor so we can just use the normal template logic for this
61
+ if options.key?(:partial)
62
+ _render_partial(options)
63
+ else
64
+ _determine_template(options)
65
+ _render_template(options)
66
+ end
67
+ end
68
+
69
+ # Raw rendering of a template to a string. Just convert the results of
70
+ # render_to_body into a String.
71
+ #
72
+ # :api: plugin
73
+ def render_to_string(*args)
74
+ options = _normalize_options(*args)
75
+ AbstractController::Rendering.body_to_s(render_to_body(options))
76
+ end
77
+
78
+ # Renders the template from an object.
79
+ #
80
+ # ==== Options
81
+ # _template<ActionView::Template>:: The template to render
82
+ # _layout<ActionView::Template>:: The layout to wrap the template in (optional)
83
+ def _render_template(options)
84
+ view_context.render_template(options)
85
+ end
86
+
87
+ # Renders the given partial.
88
+ #
89
+ # ==== Options
90
+ # partial<String|Object>:: The partial name or the object to be rendered
91
+ def _render_partial(options)
92
+ view_context.render_partial(options)
93
+ end
94
+
95
+ # The list of view paths for this controller. See ActionView::ViewPathSet for
96
+ # more details about writing custom view paths.
97
+ def view_paths
98
+ _view_paths
99
+ end
100
+
101
+ # The prefix used in render "foo" shortcuts.
102
+ def _prefix
103
+ controller_path
104
+ end
105
+
106
+ # Return a string representation of a Rack-compatible response body.
107
+ def self.body_to_s(body)
108
+ if body.respond_to?(:to_str)
109
+ body
110
+ else
111
+ strings = []
112
+ body.each { |part| strings << part.to_s }
113
+ body.close if body.respond_to?(:close)
114
+ strings.join
115
+ end
116
+ end
117
+
118
+ private
119
+
120
+ # Normalize options, by converting render "foo" to render :template => "prefix/foo"
121
+ # and render "/foo" to render :file => "/foo".
122
+ def _normalize_options(action=nil, options={})
123
+ case action
124
+ when Hash
125
+ options, action = action, nil
126
+ when String, Symbol
127
+ action = action.to_s
128
+ case action.index("/")
129
+ when NilClass
130
+ options[:_prefix] = _prefix
131
+ options[:_template_name] = action
132
+ when 0
133
+ options[:file] = action
134
+ else
135
+ options[:template] = action
136
+ end
137
+ end
138
+
139
+ options
140
+ end
141
+
142
+ # Take in a set of options and determine the template to render
143
+ #
144
+ # ==== Options
145
+ # _template<ActionView::Template>:: If this is provided, the search is over
146
+ # _template_name<#to_s>:: The name of the template to look up. Otherwise,
147
+ # use the current action name.
148
+ # _prefix<String>:: The prefix to look inside of. In a file system, this corresponds
149
+ # to a directory.
150
+ # _partial<TrueClass, FalseClass>:: Whether or not the file to look up is a partial
151
+ def _determine_template(options)
152
+ if options.key?(:text)
153
+ options[:_template] = ActionView::Template::Text.new(options[:text], format_for_text)
154
+ elsif options.key?(:inline)
155
+ handler = ActionView::Template.handler_class_for_extension(options[:type] || "erb")
156
+ template = ActionView::Template.new(options[:inline], "inline template", handler, {})
157
+ options[:_template] = template
158
+ elsif options.key?(:template)
159
+ options[:_template_name] = options[:template]
160
+ elsif options.key?(:file)
161
+ options[:_template_name] = options[:file]
162
+ end
163
+ name = (options[:_template_name] || options[:action] || action_name).to_s
164
+ options[:_prefix] ||= _prefix if (options.keys & [:partial, :file, :template]).empty?
165
+
166
+ details = _normalize_details(options)
167
+
168
+ options[:_template] ||= with_template_cache(name) do
169
+ find_template(name, details, options)
170
+ end
171
+ end
172
+
173
+ def _normalize_details(options)
174
+ details = { :formats => formats }
175
+ details[:formats] = Array(options[:format]) if options[:format]
176
+ details[:locale] = Array(options[:locale]) if options[:locale]
177
+ details
178
+ end
179
+
180
+ def find_template(name, details, options)
181
+ view_paths.find(name, details, options[:_prefix], options[:_partial])
182
+ end
183
+
184
+ def template_exists?(name, details, options)
185
+ view_paths.exists?(name, details, options[:_prefix], options[:_partial])
186
+ end
187
+
188
+ def with_template_cache(name)
189
+ yield
190
+ end
191
+
192
+ def format_for_text
193
+ Mime[:text]
194
+ end
195
+
196
+ module ClassMethods
197
+ def clear_template_caches!
198
+ end
199
+
200
+ # Append a path to the list of view paths for this controller.
201
+ #
202
+ # ==== Parameters
203
+ # path<String, ViewPath>:: If a String is provided, it gets converted into
204
+ # the default view path. You may also provide a custom view path
205
+ # (see ActionView::ViewPathSet for more information)
206
+ def append_view_path(path)
207
+ self.view_paths = view_paths.dup + Array.wrap(path)
208
+ end
209
+
210
+ # Prepend a path to the list of view paths for this controller.
211
+ #
212
+ # ==== Parameters
213
+ # path<String, ViewPath>:: If a String is provided, it gets converted into
214
+ # the default view path. You may also provide a custom view path
215
+ # (see ActionView::ViewPathSet for more information)
216
+ def prepend_view_path(path)
217
+ clear_template_caches!
218
+ self.view_paths = Array.wrap(path) + view_paths.dup
219
+ end
220
+
221
+ # A list of all of the default view paths for this controller.
222
+ def view_paths
223
+ _view_paths
224
+ end
225
+
226
+ # Set the view paths.
227
+ #
228
+ # ==== Parameters
229
+ # paths<ViewPathSet, Object>:: If a ViewPathSet is provided, use that;
230
+ # otherwise, process the parameter into a ViewPathSet.
231
+ def view_paths=(paths)
232
+ clear_template_caches!
233
+ self._view_paths = paths.is_a?(ActionView::PathSet) ? paths : ActionView::Base.process_view_paths(paths)
234
+ _view_paths.freeze
235
+ end
236
+ end
237
+ end
238
+ end
@@ -1,4 +1,4 @@
1
- module ActionController
1
+ module AbstractController
2
2
  module Translation
3
3
  def translate(*args)
4
4
  I18n.translate(*args)
@@ -1,113 +1,79 @@
1
- #--
2
- # Copyright (c) 2004-2010 David Heinemeier Hansson
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining
5
- # a copy of this software and associated documentation files (the
6
- # "Software"), to deal in the Software without restriction, including
7
- # without limitation the rights to use, copy, modify, merge, publish,
8
- # distribute, sublicense, and/or sell copies of the Software, and to
9
- # permit persons to whom the Software is furnished to do so, subject to
10
- # the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be
13
- # included in all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
- #++
23
-
24
- begin
25
- require 'active_support'
26
- rescue LoadError
27
- activesupport_path = "#{File.dirname(__FILE__)}/../../activesupport/lib"
28
- if File.directory?(activesupport_path)
29
- $:.unshift activesupport_path
30
- require 'active_support'
31
- end
32
- end
33
-
34
- gem 'rack', '~> 1.1.0'
35
- require 'rack'
36
- require 'action_controller/cgi_ext'
1
+ require 'abstract_controller'
2
+ require 'action_dispatch'
37
3
 
38
4
  module ActionController
39
- # TODO: Review explicit to see if they will automatically be handled by
40
- # the initilizer if they are really needed.
41
- def self.load_all!
42
- [Base, CGIHandler, CgiRequest, Request, Response, Http::Headers, UrlRewriter, UrlWriter]
43
- end
5
+ extend ActiveSupport::Autoload
44
6
 
45
- autoload :Base, 'action_controller/base'
46
- autoload :Benchmarking, 'action_controller/benchmarking'
47
- autoload :Caching, 'action_controller/caching'
48
- autoload :Cookies, 'action_controller/cookies'
49
- autoload :Dispatcher, 'action_controller/dispatcher'
50
- autoload :Failsafe, 'action_controller/failsafe'
51
- autoload :Filters, 'action_controller/filters'
52
- autoload :Flash, 'action_controller/flash'
53
- autoload :Helpers, 'action_controller/helpers'
54
- autoload :HttpAuthentication, 'action_controller/http_authentication'
55
- autoload :Integration, 'action_controller/integration'
56
- autoload :IntegrationTest, 'action_controller/integration'
57
- autoload :Layout, 'action_controller/layout'
58
- autoload :MiddlewareStack, 'action_controller/middleware_stack'
59
- autoload :MimeResponds, 'action_controller/mime_responds'
60
- autoload :ParamsParser, 'action_controller/params_parser'
61
- autoload :PolymorphicRoutes, 'action_controller/polymorphic_routes'
62
- autoload :RecordIdentifier, 'action_controller/record_identifier'
63
- autoload :Reloader, 'action_controller/reloader'
64
- autoload :Request, 'action_controller/request'
65
- autoload :RequestForgeryProtection, 'action_controller/request_forgery_protection'
66
- autoload :Rescue, 'action_controller/rescue'
67
- autoload :Resources, 'action_controller/resources'
68
- autoload :Response, 'action_controller/response'
69
- autoload :RewindableInput, 'action_controller/rewindable_input'
70
- autoload :Routing, 'action_controller/routing'
71
- autoload :SessionManagement, 'action_controller/session_management'
72
- autoload :StatusCodes, 'action_controller/status_codes'
73
- autoload :Streaming, 'action_controller/streaming'
74
- autoload :StringCoercion, 'action_controller/string_coercion'
75
- autoload :TestCase, 'action_controller/test_case'
76
- autoload :TestProcess, 'action_controller/test_process'
77
- autoload :Translation, 'action_controller/translation'
78
- autoload :UploadedFile, 'action_controller/uploaded_file'
79
- autoload :UploadedStringIO, 'action_controller/uploaded_file'
80
- autoload :UploadedTempfile, 'action_controller/uploaded_file'
81
- autoload :UrlRewriter, 'action_controller/url_rewriter'
82
- autoload :UrlWriter, 'action_controller/url_rewriter'
83
- autoload :Verification, 'action_controller/verification'
7
+ autoload :Base
8
+ autoload :Caching
9
+ autoload :PolymorphicRoutes
10
+ autoload :Metal
11
+ autoload :Middleware
84
12
 
85
- module Assertions
86
- autoload :DomAssertions, 'action_controller/assertions/dom_assertions'
87
- autoload :ModelAssertions, 'action_controller/assertions/model_assertions'
88
- autoload :ResponseAssertions, 'action_controller/assertions/response_assertions'
89
- autoload :RoutingAssertions, 'action_controller/assertions/routing_assertions'
90
- autoload :SelectorAssertions, 'action_controller/assertions/selector_assertions'
91
- autoload :TagAssertions, 'action_controller/assertions/tag_assertions'
13
+ autoload_under "metal" do
14
+ autoload :Compatibility
15
+ autoload :ConditionalGet
16
+ autoload :Configuration
17
+ autoload :Cookies
18
+ autoload :Flash
19
+ autoload :Head
20
+ autoload :Helpers
21
+ autoload :HideActions
22
+ autoload :HttpAuthentication
23
+ autoload :Instrumentation
24
+ autoload :MimeResponds
25
+ autoload :RackDelegation
26
+ autoload :Redirecting
27
+ autoload :Renderers
28
+ autoload :Rendering
29
+ autoload :RequestForgeryProtection
30
+ autoload :Rescue
31
+ autoload :Responder
32
+ autoload :SessionManagement
33
+ autoload :Streaming
34
+ autoload :Testing
35
+ autoload :UrlFor
36
+ autoload :Verification
92
37
  end
93
38
 
94
- module Http
95
- autoload :Headers, 'action_controller/headers'
96
- end
39
+ autoload :Dispatcher, 'action_controller/deprecated/dispatcher'
40
+ autoload :Integration, 'action_controller/deprecated/integration_test'
41
+ autoload :IntegrationTest, 'action_controller/deprecated/integration_test'
42
+ autoload :PerformanceTest, 'action_controller/deprecated/performance_test'
43
+ autoload :UrlWriter, 'action_controller/deprecated'
44
+ autoload :Routing, 'action_controller/deprecated'
45
+ autoload :TestCase, 'action_controller/test_case'
97
46
 
98
- module Session
99
- autoload :AbstractStore, 'action_controller/session/abstract_store'
100
- autoload :CookieStore, 'action_controller/session/cookie_store'
101
- autoload :MemCacheStore, 'action_controller/session/mem_cache_store'
102
- end
47
+ eager_autoload do
48
+ autoload :RecordIdentifier
49
+ autoload :UrlRewriter
103
50
 
104
- # DEPRECATE: Remove CGI support
105
- autoload :CgiRequest, 'action_controller/cgi_process'
106
- autoload :CGIHandler, 'action_controller/cgi_process'
51
+ # TODO: Don't autoload exceptions, setup explicit
52
+ # requires for files that need them
53
+ autoload_at "action_controller/metal/exceptions" do
54
+ autoload :ActionControllerError
55
+ autoload :RenderError
56
+ autoload :RoutingError
57
+ autoload :MethodNotAllowed
58
+ autoload :NotImplemented
59
+ autoload :UnknownController
60
+ autoload :MissingFile
61
+ autoload :RenderError
62
+ autoload :SessionOverflowError
63
+ autoload :UnknownHttpMethod
64
+ end
65
+ end
107
66
  end
108
67
 
109
- autoload :Mime, 'action_controller/mime_type'
110
-
111
- autoload :HTML, 'action_controller/vendor/html-scanner'
112
-
68
+ # All of these simply register additional autoloads
113
69
  require 'action_view'
70
+ require 'action_controller/vendor/html-scanner'
71
+
72
+ # Common ActiveSupport usage in ActionController
73
+ require 'active_support/concern'
74
+ require 'active_support/core_ext/class/attribute_accessors'
75
+ require 'active_support/core_ext/load_error'
76
+ require 'active_support/core_ext/module/attr_internal'
77
+ require 'active_support/core_ext/module/delegation'
78
+ require 'active_support/core_ext/name_error'
79
+ require 'active_support/inflector'