Commit Graph

54 Commits

Author SHA1 Message Date
José Valim
f564f947d9 Remove duplicated url_for code and move methods shared between ActionMailer and ActionController up to AbstractController. 2010-01-07 15:31:50 +01:00
José Valim
562a00ba16 @_formats initialization should be AbstractController::Base. 2010-01-04 23:05:28 +01:00
José Valim
c03c40b481 Expose a _render_partial hook as thhe _render_template one and make use of it. 2009-12-31 18:40:20 -08:00
José Valim
38fa0d14a8 controller_path is required by ActionView, so move it up to AbstractController and refactor AbstractController::Layouts. 2009-12-31 18:40:20 -08:00
Jeremy Kemper
9a650a6547 Silence some trivial warnings: shadowed local vars, indentation mismatches 2009-12-28 17:36:08 -08:00
José Valim
75ba102a80 Remove ActionView inline logging to ActiveSupport::Notifications and create ActionController::Base#log_event, so everything can be logged within one listener. Also expose log_process_action as a hook for different modules to include their own information during the action processing. This allow ActiveRecord to hook and any other ORM. Finally, this commit changes 'Processing' and 'Rendering' in logs to 'Processed' and 'Rendered' because at the point it's logged, everying already happened. 2009-12-26 20:28:53 +01:00
José Valim
4964d3b02c Make ActionMailer::Base inherit from AbstractController::Base
Signed-off-by: Yehuda Katz <wycats@Yehuda-Katz.local>
2009-12-22 11:29:06 -08:00
David Heinemeier Hansson
a110ff0fca Dont introspect inline templates for the logger and cleanup a few styling issues 2009-12-21 16:03:04 -08:00
Yehuda Katz
17f66473bc AC::Head now doesn't have an unfulfilled Rendering dependency, and instead works just fine standalone (which means that ConditionalGet also doesn't have a Rendering dependency) 2009-12-20 18:50:54 -08:00
David Heinemeier Hansson
83f4d86a93 Rename the RenderingController module to just plain Rendering 2009-12-20 17:15:31 -08:00
Joshua Peek
70c3e825fc Fix response_body warning in AC 2009-12-14 16:07:46 -06:00
Joshua Peek
39b708be96 rendering controller needs base 2009-12-12 19:50:12 -06:00
Joshua Peek
4b4e517bf1 Relocate AbstractController exceptions into their proper parent modules 2009-12-12 18:48:34 -06:00
Carlhuda
c1304098cc Reorganize autoloads:
* 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.
2009-12-02 20:01:08 -08:00
Jeremy Kemper
631a27d6a5 Revert "Revert "Eliminate warning with layout is unset""
This reverts commit d8fd0499bf.
2009-11-10 16:15:43 -08:00
Jeremy Kemper
d8fd0499bf Revert "Eliminate warning with layout is unset"
This reverts commit 1fcf32f8fe.
2009-11-10 16:09:52 -08:00
Jeremy Kemper
1fcf32f8fe Eliminate warning with layout is unset 2009-11-10 15:48:03 -08:00
Jeremy Kemper
6480850d37 Revert "Eliminate warning with layout is unset"
This reverts commit 90be80361f.
2009-11-10 15:43:37 -08:00
Jeremy Kemper
be664392c0 Eliminate warning by initializing nil formats 2009-11-10 14:13:54 -08:00
Jeremy Kemper
90be80361f Eliminate warning with layout is unset 2009-11-10 14:13:21 -08:00
Jeremy Kemper
1c047be0fc If class doesn't have a name, there's no implied layout name, so don't set up a _layout method 2009-11-05 16:12:02 -08:00
José Valim
976c264724 Extracted localized_cache.rb from ActionController, added it to AbstractController and made ActionMailer use it. 2009-11-01 02:23:49 +01:00
José Valim
0396004861 Add some basic render_test to AbstractController. 2009-11-01 02:23:48 +01:00
José Valim
0cf16ddb88 Improve AbstractController layouts coverage. 2009-11-01 02:23:48 +01:00
José Valim
43d5504f0a Move all render and layout pieces required in ActionMailer from ActionController to AbstractController. 2009-11-01 02:23:48 +01:00
José Valim
684c2dc208 Remove ActionMailer helpers and rely on AbstractController one. 2009-11-01 02:23:48 +01:00
José Valim
a9751a7034 Refactor ActionMailer layout and remove legacy one. 2009-11-01 02:23:47 +01:00
José Valim
2d7abe245e Renamed Orchestra to Notifications once again [#3321 state:resolved] 2009-10-15 18:51:51 -03:00
José Valim
a15e02d44a Unify benchmark APIs. 2009-10-15 18:19:25 -03:00
José Valim
af0d1fa892 Update Orchestra instrumentations and move part of logging to Orchestra. 2009-10-15 18:18:44 -03:00
José Valim
8b340ab2f6 Revert "Rename Orchestra to Notifications [#3321 state:resolved]"
This reverts commit 8cbf825425.
2009-10-15 18:06:15 -03:00
Joshua Peek
8cbf825425 Rename Orchestra to Notifications [#3321 state:resolved] 2009-10-14 19:50:36 -05:00
Joshua Peek
21e7b84621 Callbacks, DeprecatedCallbacks = NewCallbacks, Callbacks 2009-10-12 22:15:43 -05:00
Joshua Peek
9bc8defe38 Use "run_callbacks :foo" since it is the public api for callbacks [#3329
state:resolved]
2009-10-12 21:58:49 -05:00
José Valim
a0233dd3b2 Use NewCallbacks on ActionDispatch::Callbacks. 2009-09-20 10:56:38 -03:00
José Valim
7cc1c2e71d Add Orchestra instrumentation to fragment and page caching. 2009-09-20 10:56:38 -03:00
José Valim
8f47f311b7 Instrument process_action, render and sql. 2009-09-20 10:56:38 -03:00
Joshua Peek
23e72d4cc8 Forward all methods to delayed log 2009-09-16 22:34:44 -05:00
José Valim
af5b12c64c Fix callbacks on ActionPack.
Signed-off-by: Yehuda Katz <wycats@gmail.com>
2009-09-08 10:28:28 -07:00
Yehuda Katz + Carl Lerche
e3744166ec Refactor ActionController to use find_template and template_exists? 2009-09-03 12:52:53 -07:00
Yehuda Katz + Carl Lerche
dd34691b8d Extract finding the template in AC to it's own method 2009-09-03 11:18:56 -07:00
Carl Lerche
efbd535f36 Have AbstractController::Logger#process_action return super's value 2009-08-26 19:52:17 -07:00
Yehuda Katz
9408fcd2e8 Create new ActionController::Middleware class that will work as a normal 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.
2009-08-26 00:18:52 -07:00
Yehuda Katz + Carl Lerche
86c7b144fa Add a TODO so we remember to fix partial layouts 2009-08-25 16:02:26 -07:00
Yehuda Katz
9b552fb300 Caches and cache clearing seems to actually work, but the actual architecture is kind of messy. Next: CLEAN UP. 2009-08-15 12:32:01 -07:00
Yehuda Katz
4bf516e072 More perf work:
* 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!
2009-08-11 15:03:53 -07:00
Yehuda Katz
02d9dd9000 Add some more caching to the lookup 2009-08-11 15:03:52 -07:00
Yehuda Katz
e58b2769cf Experimental: Improve performance of ActionView by preventing method cache 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.
2009-08-09 04:12:09 -03:00
Yehuda Katz
d0301e13f4 First pass at making partial rendering an Object. More cleanup to come. 2009-08-08 12:44:26 -03:00
Yehuda Katz
010a0c92eb Rename find_by_parts and find_by_parts? to find and exists? 2009-08-07 15:00:12 -03:00