aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller
Commit message (Collapse)AuthorAgeFilesLines
* Axe "best fit" generation supportJoshua Peek2009-08-151-27/+2
|
* Normalize route generation order: associations, yield block, then own routes.Jeremy Kemper2009-08-151-9/+9
|
* Got tests to pass with some more changes.Yehuda Katz2009-08-152-8/+16
| | | | | | | | | | | | | | | | * request.formats is much simpler now * For XHRs or Accept headers with a single item, we use the Accept header * For other requests, we use params[:format] or fallback to HTML * This is primarily to work around the fact that browsers provide completely broken Accept headers, so we have to whitelist the few cases we can specifically isolate and treat other requests as coming from the browser * For APIs, we can support single-item Accept headers, which disambiguates from the browsers * Requests to an action that only has an XML template from the browser will no longer find the template. This worked previously because most browsers provide a catch-all */*, but this was mostly accidental behavior. If you want to serve XML, either use the :xml format in links, or explicitly specify the XML template: render "template.xml".
* Caches and cache clearing seems to actually work, but the actual ↵Yehuda Katz2009-08-151-0/+32
| | | | architecture is kind of messy. Next: CLEAN UP.
* Merge branch 'master' of git://github.com/rails/railsJosé Valim2009-08-136-19/+23
|\
| * More perf work:Yehuda Katz2009-08-115-16/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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!
| * Got overhead down from 127 to 85. All tests pass:Yehuda Katz2009-08-113-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Tentatively replaced HeaderHash with SimpleHeaderHash, which does not preserve case but does handle converting Arrays to Strings in to_hash. This requires further discussion. * Moved default_charset to ActionDispatch::Response to avoid having to hop over to ActionController. Ideally, this would be a constant on AD::Response, but some tests expect to be able to change it dynamically and I didn't want to change them yet. * Completely override #initialize from Rack::Response. Previously, it was creating a HeaderHash, and then we were creating an entirely new one. There is no way to call super without incurring the overhead of creating a HeaderHash. * Override #write from Rack::Response. Its implementation tracks Content-Length, and doing so adds additional overhead that could be mooted if other middleware changes the body. It is more efficiently done at the top-level server. * Change sending_file to an instance_variable instead of header inspection. In general, if a state is important, it should be set as a property of the response not reconstructed later. * Set the Etag to @body instead of .body. AS::Cache.expand_cache_key handles Arrays fine, and it's more efficient to let it handle the body parts, since it is not forced to create a joined String. * If we detect the default cache control case, just set it, rather than setting the constituent parts and then running the normal (expensive) code to generate the string.
* | Ensure collections are not treated as nested resources.José Valim2009-08-132-7/+8
|/
* Deprecate router generation "best match" sortingJoshua Peek2009-08-092-6/+30
|
* Added both the documentation and a test case for the collection path name ↵Hugo Peixoto2009-08-091-2/+3
| | | | | | | | customization feature. [#1218 state:committed] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
* path_names could be used to customize collection actions tooBence Nagy2009-08-091-1/+4
| | | | Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
* Remove unused routeset method routes_for_controller_and_action in favour for ↵Gabe da Silveira2009-08-091-7/+0
| | | | | | routes_for [#3023 state:resolved] Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Allow to configure trusted proxies via ↵Felipe Talavera2009-08-091-0/+2
| | | | | | ActionController::Base.trusted_proxies [#2126 state:resolved] Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Make http digest work with different server/browser combinationsJosé Valim2009-08-091-1/+2
| | | | Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Use response_body rather than performed?Yehuda Katz2009-08-091-1/+1
|
* Fix HTTP basic authentication for long credentials [#2572 state:resolved]Jan Schwenzien2009-08-091-1/+1
| | | | Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Polymorphic routes generates collection URL from model class [#1089 ↵Niklas Holmgren2009-08-081-0/+7
| | | | | | | state:resolved] Signed-off-by: Dan Pickett <dpickett@enlightsolutions.com> Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Merge commit 'jose/responder'Yehuda Katz2009-08-082-25/+25
|\
| * Renamed ActionController::Renderer to ActionController::Responder and ↵José Valim2009-08-082-25/+25
| | | | | | | | ActionController::MimeResponds::Responder to ActionController::MimeResponds::Collector.
* | Fixes "Cached fragment hit" written to log even if fragment is not cached ↵Yehuda Katz2009-08-081-2/+2
|/ | | | (Erik Andrejko) [#2917 state:resolved]
* First pass at making partial rendering an Object. More cleanup to come.Yehuda Katz2009-08-081-3/+0
|
* Rename find_by_parts and find_by_parts? to find and exists?Yehuda Katz2009-08-072-2/+2
|
* Renamed presenter to renderer, added some documentation and defined its API.José Valim2009-08-078-213/+252
|
* Encapsulate respond_with behavior in a presenter.José Valim2009-08-071-190/+165
|
* Add destroyed? to ActiveRecord, include tests for polymorphic urls for ↵José Valim2009-08-071-0/+31
| | | | destroyed objects and refactor mime responds tests and documentation.
* Add nagivational behavior to respond_with.José Valim2009-08-073-61/+124
|
* Merge branch 'master' of git://github.com/rails/rails into oldJosé Valim2009-08-071-13/+2
|\
| * Get all ActionController partial rendering to use ActionView's partial code. ↵Yehuda Katz2009-08-071-13/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'master' of git://github.com/rails/rails into oldJosé Valim2009-08-0738-936/+27
|\|
| * Start cleaning up partial pathYehuda Katz2009-08-071-1/+1
| |
| * Clean up render @object a bit more.Yehuda Katz2009-08-071-15/+0
| |
| * Remove file that doesn't seem to be used anymoreYehuda Katz2009-08-061-84/+0
| |
| * Move AbstractController to a top-level componentYehuda Katz2009-08-0610-796/+0
| |
| * ActionController::Metal#to_rack converted to #to_a to match normal rack ↵Yehuda Katz2009-08-062-3/+3
| | | | | | | | convention
| * Update _render_options to reflect the fact that they're publicYehuda Katz2009-08-061-6/+6
| |
| * Rename /base to /metal and make base.rb and metal.rb top-level to reflect ↵Yehuda Katz2009-08-0625-0/+0
| | | | | | | | their module locations
| * rename ActionController::Http to ActionController::Metal at Josh's suggestionYehuda Katz2009-08-063-5/+5
| |
| * Replace _action_view with view_context to reflect that it is public and that ↵Yehuda Katz2009-08-064-9/+8
| | | | | | | | it does not need to be an ActionView instance
| * replace _render_*_from_controller with render_* as they are intended to be ↵Yehuda Katz2009-08-061-4/+4
| | | | | | | | public
| * Update cache_control to be a Hash of options that is used to build the header.Yehuda Katz2009-08-023-21/+6
| | | | | | | | * Significantly simplifies setting and modifying cache control in other areas
| * Ruby 1.9: fix Content-Length for multibyte send_data streamingSava Chankov2009-08-011-1/+3
| | | | | | | | | | | | [#2661 state:resolved] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
* | Allow respond_with to deal with http verb accordingly.José Valim2009-07-311-37/+74
| |
* | Remove any resource logic from respond_to.José Valim2009-07-301-17/+14
|/
* Remove last TODO.José Valim2009-07-292-6/+1
| | | | Signed-off-by: Yehuda Katz <wycats@gmail.com>
* Add a couple more tests to respond_with.José Valim2009-07-291-11/+8
| | | | Signed-off-by: Yehuda Katz <wycats@gmail.com>
* Added respond_with.José Valim2009-07-291-26/+139
| | | | Signed-off-by: Yehuda Katz <wycats@gmail.com>
* Added tests for respond_to class method.José Valim2009-07-291-1/+1
| | | | Signed-off-by: Yehuda Katz <wycats@gmail.com>
* Ensure that the proper accept header value is set during tests.José Valim2009-07-291-2/+2
| | | | Signed-off-by: Yehuda Katz <wycats@gmail.com>
* Remove Mime::ALL from Mime::SET.José Valim2009-07-291-0/+1
| | | | Signed-off-by: Yehuda Katz <wycats@gmail.com>
* Refactor even more Responder. Move mime negotiation to request and added ↵José Valim2009-07-291-51/+99
| | | | | | respond_to class method. Signed-off-by: Yehuda Katz <wycats@gmail.com>