aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/abstract_controller
Commit message (Collapse)AuthorAgeFilesLines
* Reorganize autoloads:Carlhuda2009-12-021-1/+1
| | | | | | | | | | | | | | | | | | | | | * A new module (ActiveSupport::Autoload) is provide that extends autoloading with new behavior. * All autoloads in modules that have extended ActiveSupport::Autoload will be eagerly required in threadsafe environments * Autoloads can optionally leave off the path if the path is the same as full_constant_name.underscore * It is possible to specify that a group of autoloads live under an additional path. For instance, all of ActionDispatch's middlewares are ActionDispatch::MiddlewareName, but they live under "action_dispatch/middlewares/middleware_name" * It is possible to specify that a group of autoloads are all found at the same path. For instance, a number of exceptions might all be declared there. * One consequence of this is that testing-related constants are not autoloaded. To get the testing helpers for a given component, require "component_name/test_case". For instance, "action_controller/test_case". * test_help.rb, which is automatically required by a Rails application's test helper, requires the test_case.rb for all active components, so this change will not be disruptive in existing or new applications.
* Revert "Revert "Eliminate warning with layout is unset""Jeremy Kemper2009-11-101-1/+1
| | | | This reverts commit d8fd0499bfd6edc676ff3fbffc327656f6d5c320.
* Revert "Eliminate warning with layout is unset"Jeremy Kemper2009-11-101-1/+1
| | | | This reverts commit 1fcf32f8fef8fb5a63a66edacf556a107d12c049.
* Eliminate warning with layout is unsetJeremy Kemper2009-11-101-1/+1
|
* Revert "Eliminate warning with layout is unset"Jeremy Kemper2009-11-101-1/+1
| | | | This reverts commit 90be80361f26d717f9842170315dd8659f35429d.
* Eliminate warning by initializing nil formatsJeremy Kemper2009-11-101-0/+6
|
* Eliminate warning with layout is unsetJeremy Kemper2009-11-101-1/+1
|
* If class doesn't have a name, there's no implied layout name, so don't set ↵Jeremy Kemper2009-11-051-10/+12
| | | | up a _layout method
* Extracted localized_cache.rb from ActionController, added it to ↵José Valim2009-11-011-0/+49
| | | | AbstractController and made ActionMailer use it.
* Add some basic render_test to AbstractController.José Valim2009-11-012-8/+1
|
* Improve AbstractController layouts coverage.José Valim2009-11-011-3/+6
|
* Move all render and layout pieces required in ActionMailer from ↵José Valim2009-11-012-0/+28
| | | | ActionController to AbstractController.
* Remove ActionMailer helpers and rely on AbstractController one.José Valim2009-11-011-11/+70
|
* Refactor ActionMailer layout and remove legacy one.José Valim2009-11-011-0/+20
|
* Renamed Orchestra to Notifications once again [#3321 state:resolved]José Valim2009-10-151-1/+1
|
* Unify benchmark APIs.José Valim2009-10-151-16/+2
|
* Update Orchestra instrumentations and move part of logging to Orchestra.José Valim2009-10-151-6/+6
|
* Revert "Rename Orchestra to Notifications [#3321 state:resolved]"José Valim2009-10-151-1/+1
| | | | This reverts commit 8cbf825425dc8ad3770881ea4e100b9023c69ce2.
* Rename Orchestra to Notifications [#3321 state:resolved]Joshua Peek2009-10-141-1/+1
|
* Callbacks, DeprecatedCallbacks = NewCallbacks, CallbacksJoshua Peek2009-10-121-5/+3
|
* Use "run_callbacks :foo" since it is the public api for callbacks [#3329Joshua Peek2009-10-121-1/+1
| | | | state:resolved]
* Use NewCallbacks on ActionDispatch::Callbacks.José Valim2009-09-201-1/+2
|
* Add Orchestra instrumentation to fragment and page caching.José Valim2009-09-202-46/+23
|
* Instrument process_action, render and sql.José Valim2009-09-201-4/+7
|
* Forward all methods to delayed logJoshua Peek2009-09-161-6/+8
|
* Fix callbacks on ActionPack.José Valim2009-09-081-1/+1
| | | | Signed-off-by: Yehuda Katz <wycats@gmail.com>
* Refactor ActionController to use find_template and template_exists?Yehuda Katz + Carl Lerche2009-09-032-6/+10
|
* Extract finding the template in AC to it's own methodYehuda Katz + Carl Lerche2009-09-031-3/+5
|
* Have AbstractController::Logger#process_action return super's valueCarl Lerche2009-08-261-1/+3
|
* Create new ActionController::Middleware class that will work as a normal ↵Yehuda Katz2009-08-261-1/+0
| | | | | | Rack middleware. * This initial implementation is a bit hackish, but it uses a normal middleware API so it's future-proof when we improve the internals.
* Add a TODO so we remember to fix partial layoutsYehuda Katz + Carl Lerche2009-08-251-0/+3
|
* Caches and cache clearing seems to actually work, but the actual ↵Yehuda Katz2009-08-152-7/+23
| | | | architecture is kind of messy. Next: CLEAN UP.
* More perf work:Yehuda Katz2009-08-111-17/+32
| | | | | | | | | | | | | | * Move #set_cookie and #delete_cookie inline to optimize. These optimizations should almost certainly be sent back upstream to Rack. The optimization involves using an ivar for cookies instead of indexing into the headers each time. * Was able to use a bare Hash for headers now that cookies have their own joining semantics (some code assumed that the raw cookies were an Array). * Cache blankness of body on body= * Improve expand_cache_key for Arrays of a single element (common in our case) * Use a simple layout condition check unless conditions are used * Cache visible actions * Lazily load the UrlRewriter * Make etag an ivar that is set on prepare!
* Add some more caching to the lookupYehuda Katz2009-08-111-4/+18
|
* Experimental: Improve performance of ActionView by preventing method cache ↵Yehuda Katz2009-08-091-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | flushing due to runtime Kernel#extend: * The helper module adds a new _helper_serial property onto AbstractController subclasses * When #helper is used to add helpers to a class, the serial number is updated * An ActionView subclass is created and cached based on this serial number. * That subclass includes the helper module from the controller * Subsequent requests using the same controller with the same serial will result in reusing that subclass, rather than being forced to take an action (like include or extend) that will result in a global method cache flush on MRI and a flush of the entire AV class' cache on JRuby. * For now, this optimization is not applied to the RJS helpers, which results in a global method cache flush in MRI and a flush of the JavaScriptGenerator class in JRuby only when using RJS. * Since the effects are limited to using RJS, and would only affect JavaScriptGenerator in JRuby (as opposed to the entire view object), it seems worthwhile to apply this now. * This resulted in a significant performance improvement. I will have benchmarks in the next day or two that show the performance impact of the last several commits. * There is a small chance this could break existing code (although I'm not sure how). If that happens, please report it immediately.
* First pass at making partial rendering an Object. More cleanup to come.Yehuda Katz2009-08-081-8/+10
|
* Rename find_by_parts and find_by_parts? to find and exists?Yehuda Katz2009-08-072-3/+3
|
* Renamed presenter to renderer, added some documentation and defined its API.José Valim2009-08-073-4/+4
|
* Get all ActionController partial rendering to use ActionView's partial code. ↵Yehuda Katz2009-08-072-1/+17
| | | | | | | | | | | | | | Consequences: * It is not possible to always pre-determine the layout before going to ActionView. This was *already* broken for render :partial => @object, :layout => true. This is now handled by overriding render_to_body in layouts.rb and manually injecting the partial's response. This needs to be done in ActionController since ActionController knows enough to get _layout_for_option. There is probably a better abstraction here. * As a result, all partial rendering can correctly restrict their layouts to the mime type of the rendered partial. This could have previously caused a bug in some edge cases. * If other layout-like options are added, they might need to add special code for the case of render :partial. We should try to think of an alternate solution, if possible, but this works for the cases we know of now.
* Start cleaning up partial pathYehuda Katz2009-08-071-2/+2
|
* Move AbstractController to a top-level componentYehuda Katz2009-08-068-0/+778