aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Merge pull request #14291 from laurocaetano/doc-for-original-fullpathYves Senn2014-03-121-0/+7
|\ \ \ \ | | | | | | | | | | Add documentation for original_fullpath. [ci skip]
| * | | | [ci skip] Add documentation for original_fullpath.Lauro Caetano2014-03-111-0/+7
| | | | |
* | | | | Merge pull request #14262 from sferik/flat_mapAndrew White2014-03-097-18/+18
|\ \ \ \ \ | | | | | | | | | | | | Replace additional instances of map.flatten with flat_map
| * | | | | Replace map.flatten with flat_map in actionpackErik Michaels-Ober2014-03-037-18/+18
| |/ / / /
* | | | | Copy shallow options from normal options when using scopeAndrew White2014-03-081-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the options :shallow_prefix and :shallow_path are not set in the scope options then copy them from the normal :as and :path options if they are set.
* | | | | Pull namespace defaults out of the options hashAndrew White2014-03-081-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a developer has specified either :path or :as in the options hash then these should be used as the defaults for :shallow_path and :shallow_prefix. Fixes #14241.
* | | | | Only use shallow nested scope when depth is > 1Andrew White2014-03-081-20/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By tracking the depth of resource nesting we can push the need for nested shallow scoping to only those routes that are nested more than one deep. This allows us to keep the fix for #12498 and fix the regression in #14224. Fixes #14224.
* | | | | Move setting :scope_level_resource to resource_scopeAndrew White2014-03-081-7/+7
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | Originally with_scope_level was exclusively for managing scope levels with resources, however it is now used for other things so it makes more sense to move the responsibility for setting the :scope_level_resource to the resource_scope method. This eliminates repeatedly setting it to the same resource as each resource method scope is evaluated.
* | | | Merge branch 'master' of github.com:rails/docrailsVijay Dev2014-03-071-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Conflicts: guides/source/4_1_release_notes.md
| * | | | :scissors:Zachary Scott2014-02-231-1/+1
| | | | | | | | | | | | | | | | | | | | This commit also addresses rails/docrails#169 and rails/rails#14159
* | | | | Do note remove `Content-Type` when `render :body`Prem Sichanugrist2014-03-051-12/+1
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `render :body` should just not set the `Content-Type` header. By removing the header, it breaks the compatibility with other parts. After this commit, `render :body` will returns `text/html` content type, sets by default from `ActionDispatch::Response`, and it will preserve the overridden content type if you override it. Fixes #14197, #14238 This partially reverts commit 3047376870d4a7adc7ff15c3cb4852e073c8f1da.
* | | | Replace map.flatten(1) with flat_mapErik Michaels-Ober2014-02-282-5/+5
|/ / /
* | | Add `#no_content_type` attribute to `AD::Response`Prem Sichanugrist2014-02-181-2/+13
| | | | | | | | | | | | | | | Setting this attribute to `true` will remove the content type header from the request. This is use in `render :body` feature.
* | | Introduce `render :body` for render raw contentPrem Sichanugrist2014-02-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an option for sending a raw content back to browser. Note that this rendering option will unset the default content type and does not include "Content-Type" header back in the response. You should only use this option if you are expecting the "Content-Type" header to not be set. More information on "Content-Type" header can be found on RFC 2616, section 7.2.1. Please see #12374 for more detail.
* | | Fix parameter naming in RemoteIp middleware constructor methodKalabiYau2014-02-181-2/+2
| | | | | | | | | | | | | | | Was custom_proxies in inline docs, but should be and defined in constructor as custom_proxies
* | | Check if variant array contains only symbolsŁukasz Strzałkowski2014-02-131-2/+2
| | |
* | | Variant negotiationLukasz Strzalkowski2014-02-131-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow setting `request.variant` as an array - an order in which they will be rendered. For example: request.variant = [:tablet, :phone] respond_to do |format| format.html.none format.html.phone # this gets rendered end
* | | rm warning about variable shadowingGodfrey Chan2014-02-111-2/+2
| | |
* | | Migrate hash-based cookie values correctlyGodfrey Chan2014-02-111-2/+4
| | |
* | | Missed FlashHash#replaceGodfrey Chan2014-02-111-1/+1
| | |
* | | Fixed broken flash testsGodfrey Chan2014-02-111-1/+1
| | |
* | | Re-write legacy (marshal) cookies on readGodfrey Chan2014-02-111-20/+40
| | |
* | | Stringify the incoming hash in FlashHashGuillermo Iguaran2014-02-111-1/+3
| | | | | | | | | | | | | | | Stringify the incoming as well to handle incoming symbol keys from marshalled sessions
* | | Convert FlashHash in a Hash with indifferent accessGuillermo Iguaran2014-02-111-4/+15
| | |
* | | Added HybridSerializer to upgrade existing marshal cookies (wip: need tests)Godfrey Chan2014-02-111-0/+14
| | |
* | | Renamed session_serializer option to cookies_serializerGodfrey Chan2014-02-113-42/+30
| | |
* | | Set the :shallow_path as each scope is generatedAndrew White2014-02-091-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we set :shallow_path when shallow is called it can result in incorrect paths if the resource is inside a namespace because namespace itself sets the :shallow_path option to the namespace path. We fix this by removing the :shallow_path option from shallow as that should only be turning shallow routes on and not otherwise affecting the scope. To do this we need to treat the :shallow option to resources differently to other scope options and move it to before the nested block is called. This change also has the positive side effect of making the behavior of the :shallow option consistent with the shallow method. Fixes #12498.
* | | Prevent [response].flatten from recursing infinitely.Dan Kang2014-02-081-1/+1
| | | | | | | | | | | | | | | | | | Returning `self` from within the array returned by `to_ary` caused this. Instead, we can just substitute another object. It provides the `each` behavior required by the rack spec.
* | | Updated the cookie docs to use the safer JSON.{generate,parse}Godfrey Chan2014-02-081-5/+5
| | | | | | | | | | | | cc @senny
* | | Rely on backticks instead of tt tags [ci skip]Robin Dupret2014-02-081-2/+2
| | | | | | | | | | | | | | | Since the language in code blocks is inferred, if the code contains tt tags, the block will be parsed as XML for instance while it is Ruby.
* | | docs, Cookie values are String based. Closes #12860. [ci skip]Yves Senn2014-02-081-7/+7
| | |
* | | only ask for the location filters onceAaron Patterson2014-01-311-4/+5
| | |
* | | FilterRedirect is referenced at the class level from the ResponseAaron Patterson2014-01-311-0/+1
| | | | | | | | | | | | | | | We can just require the file rather than going through the autoload indirection
* | | Modify the session serializer implementationGuillermo Iguaran2014-01-301-3/+5
| | | | | | | | | | | | | | | Rename allowed options to :marshal and :json, for custom serializers only allow the use of custom classes.
* | | Allow session serializer key in config.session_storeLukasz Sarnacki2014-01-293-2/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MessageEncryptor has :serializer option, where any serializer object can be passed. This commit make it possible to set this serializer from configuration level. There are predefined serializers (:marshal_serializer, :json_serialzier) and custom serializer can be passed as String, Symbol (camelized and constantized in ActionDispatch::Session namepspace) or serializer object. Default :json_serializer was also added to generators to provide secure defalt.
* | | always use a block for cleanup / prepare callbacks so we can clean the ↵Aaron Patterson2014-01-281-0/+9
| | | | | | | | | | | | method signature
* | | scope is not necessaryAaron Patterson2014-01-281-2/+2
| | |
* | | Log which keys were set to nil in deep_mungeLukasz Sarnacki2014-01-281-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | deep_munge solves CVE-2013-0155 security vulnerability, but its behaviour is definately confuisng. This commit adds logging to deep_munge. It logs keys for which values were set to nil. Also mentions in guides were added.
* | | Transform dashes to underscores in resource route namesByron Bischoff2014-01-251-4/+4
| | | | | | | | | | | | Fixes #13824
* | | Fix `rake routes` error when `Rails::Engine` with empty routes is mounted; ↵Maurizio De Santis2014-01-241-3/+3
| | | | | | | | | | | | | | | | | | fixes rails/rails#13810 Squash
* | | Automatically convert dashes to underscores in shorthand routesMikko Johansson2014-01-201-0/+1
| | |
* | | Automatically convert dashes to underscores for url helpersAmr Tamimi2014-01-201-1/+2
| | |
* | | Revert "Don't remove trailing slash from PATH_INFO for mounted apps"Piotr Sarnacki2014-01-161-7/+1
| | | | | | | | | | | | | | | | | | | | | The revert is needed because of a regression described in #13369, routes with trailing slash are no longer recognized properly. This reverts commit 50311f1391ddd8e0349d74eb57f04b7e0045a27d.
* | | Allow an absolute controller path inside a module scopeAndrew White2014-01-051-2/+6
| | | | | | | | | | | | Fixes #12777
* | | Unique the segment keys array for non-optimized url helpersAndrew White2014-01-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Rails 3.2 you only needed pass an argument for dynamic segment once so unique the segment keys array to match the number of args. Since the number of args is less than required parts the non-optimized code path is selected. This means to benefit from optimized url generation the arg needs to be specified as many times as it appears in the path. Fixes #12808
* | | Show full route constraints in error messageAndrew White2014-01-052-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | When an optimized helper fails to generate, show the full route constraints in the error message. Previously it would only show the contraints that were required as part of the path. Fixes #13592
* | | Simplify arg parameterizationAndrew White2014-01-051-6/+1
| | |
* | | Use a custom route vistor for optimized route generationAndrew White2014-01-052-31/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using a Regexp to replace dynamic segments in a path string is fraught with difficulty and can lead to odd edge cases like #13349. Since we already have a parsed representation of the path it makes sense to use that to generate an array of segments that can be used to build an optimized route's path quickly. Tests on a simple route (e.g. /posts/:id) show a speedup of 35%: https://gist.github.com/pixeltrix/8261932 Calculating ------------------------------------- Current Helper: 5274 i/100ms New Helper: 8050 i/100ms ------------------------------------------------- Current Helper: 79263.6 (±3.7%) i/s - 395550 in 4.997252s New Helper: 153464.5 (±4.9%) i/s - 772800 in 5.047834s Tests on a more complex route show even an greater performance boost: https://gist.github.com/pixeltrix/8261957 Calculating ------------------------------------- Current Helper: 2367 i/100ms New Helper: 5382 i/100ms ------------------------------------------------- Current Helper: 29506.0 (±3.2%) i/s - 149121 in 5.059294s New Helper: 78815.5 (±4.1%) i/s - 398268 in 5.062161s It also has the added benefit of fixing the edge cases described above. Fixes #13349
* | | Allow engine root relative redirects using an empty string.Andrew White2014-01-011-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example: # application routes.rb mount BlogEngine => '/blog' # engine routes.rb get '/welcome' => redirect('') This now redirects to the path `/blog`, whereas before it would redirect to the application root path. In the case of a path redirect or a custom redirect if the path returned contains a host then the path is treated as absolute. Similarly for option redirects, if the options hash returned contains a `:host` or `:domain` key then the path is treated as absolute. Fixes #7977
* | | Fix Encoding::CompatibilityError when public path is UTF-8Andrew White2013-12-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In #5337 we forced the path encoding to ASCII-8BIT to prevent static file handling from blowing up before an application has had chance to deal with possibly invalid urls. However this has a negative side effect of making it an incompatible encoding if the application's public path has UTF-8 characters in it. To work around the problem we check to see if the path has a valid encoding once it has been unescaped. If it is not valid then we can return early since it will not match any file anyway. Fixes #13518