aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch
Commit message (Collapse)AuthorAgeFilesLines
* Tiny documentation edits [ci skip]Robin Dupret2015-05-041-1/+1
| | | | | | * Fix a few typos * Wrap lines to 80 chars * Use `+` instead of `<tt>`
* Use ruby 1.9 lambda syntax in documentations [ci skip]Mehmet Emin İNAÇ2015-05-033-6/+6
|
* Use `args` instead of `*args` in `kwargs_request?` methodeileencodes2015-05-021-3/+3
| | | | | | `*args` is not required here and should be avoided when not necessary because `*args` are slower than `args` and create unnecessary array allocations.
* Document :tld_length option for cookies.Ryan Wallace2015-04-291-0/+3
|
* Merge pull request #18392 from brainopia/fix_route_requirementsArthur Nogueira Neves2015-04-271-1/+1
|\ | | | | Correct route requirements by overriding defaultls
| * Correct route requirements by overriding defaultls (fixes #18373)brainopia2015-01-081-1/+1
| |
* | Don't reference sprockets assets on action packArthur Neves2015-04-261-1/+1
| | | | | | | | | | | | | | | | We need to ignore the `assets_prefix` when running a command like `rake routes`. However we cannot reference asserts_prefix from action_pack as that is a sprockets-rails concern. See this is now implemented on sprockets-rails https://github.com/rails/sprockets-rails/commit/85b89c44ad40af3056899808475e6e4bf65c1f5a
* | No need to capitalize verbs. [CI SKIP]Guo Xiang Tan2015-04-261-2/+2
| |
* | Add nodoc to some private constants [ci skip]Rafael Mendonça França2015-04-231-3/+3
| |
* | Merge pull request #19823 from sbhatore/doc_fix_1Rafael Mendonça França2015-04-231-0/+8
|\ \ | | | | | | [ci skip] Description inside Signed and Encrypted CookieJars added
| * | Squashed commit of the following:Siddharth Bhatore2015-04-231-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit a88875ac6abaa4d8116b42af8cd71189ce3d44d3 Author: Siddharth Bhatore <sbhatore95@gmail.com> Date: Thu Apr 23 12:26:08 2015 +0530 [ci skip] Update doc fix cookies commit f175eaa7a21db898fc6c66334f770831028f9d00 Author: Siddharth Bhatore <sbhatore95@gmail.com> Date: Mon Apr 20 12:58:04 2015 +0530 Description inside Signed and Encrypted CookieJars added
* | | [ci skip] Add, clean up docs in ActionDispatch ActionDispatch middlewareNick Cox2015-04-221-6/+13
| | |
* | | [ci skip] UpgradeLegacySignedCookieJar Doc fixSiddharth Bhatore2015-04-221-2/+2
|/ /
* | Add missing require for String#strip_heredocPrem Sichanugrist2015-04-171-0/+1
| | | | | | | | | | | | This method is being used in `#xml_http_request`, but was not properly required. This causes `NoMethodError` on projects that are doing integration test.
* | [Rails4 regression] prevent thin and puma cause error in Non ASCII URL on ↵Toshi MARUYAMA2015-04-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows * https://github.com/rails/rails/issues/19187 * https://github.com/rails/rails/pull/19533 * https://github.com/macournoyer/thin/issues/268 These are serious Rails 4 regression for Redmine Bitnami Windows users. https://community.bitnami.com/t/problems-with-3-0-1-installation-see-report-inside/30195/ It is not caused on webrick users. Related: * https://github.com/rack/rack/issues/732#issuecomment-67677272 * https://github.com/phusion/passenger/issues/1328
* | Merge pull request #19700 from tancnle/trivial-shallow-nesting-depth-countRafael Mendonça França2015-04-081-1/+1
|\ \ | | | | | | A shorter and more concise version of select..size
| * | A shorter and more concise version of select..sizeTan Le2015-04-091-1/+1
| | |
* | | Merge pull request #19633 from y00rb/sort_router_parameters_duplicated_keysRafael Mendonça França2015-04-082-2/+2
|\ \ \ | | | | | | | | avoid error when sort mixture keys in symbol and string
| * | | sort_by instead of sortYang Bo2015-04-082-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | it is avoid sort errot within different and mixed keys. used `sort_by` + `block` to list parameter by keys. keep minimum changes
* | | | remove new line between doc and methodBruce Park2015-04-071-1/+0
| | | |
* | | | added docs for ActionDispatch::Request::Session#createBruce Park2015-04-071-1/+3
| | | |
* | | | Fix method signature of `parse_query` to match rackeileencodes2015-04-061-1/+1
|/ / / | | | | | | | | | | | | | | | | | | Recently rack was changed to have a second argument on the `parse_query` method (in rack/rack#781). Rails relies on this and it's `parse_query` method was complaining about missing the second argument. I changed the arguments to `*` so we don't have this issue in the future.
* | | Add ActiveSupport::ArrayInquirer and Array#inquiryGeorge Claghorn2015-03-241-27/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Wrapping an array in an `ArrayInquirer` gives a friendlier way to check its string-like contents. For example, `request.variant` returns an `ArrayInquirer` object. To check a request's variants, you can call: request.variant.phone? request.variant.any?(:phone, :tablet) ...instead of: request.variant.include?(:phone) request.variant.any? { |v| v.in?([:phone, :tablet]) } `Array#inquiry` is a shortcut for wrapping the receiving array in an `ArrayInquirer`: pets = [:cat, :dog] pets.cat? # => true pets.ferret? # => false pets.any?(:cat, :ferret} # => true
* | | Provide friendlier access to request variantsGeorge Claghorn2015-03-241-7/+34
| | | | | | | | | | | | Closes #18933.
* | | Fix ActionDispatch::PublicExceptions returning string rack statusRyan Tomayko2015-03-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | The status returned in the rack [status, headers, body] array was a string, which can cause problems with middleware that assumes the status will be a Fixnum. This likely never surfaced because other middleware to_i the status returned from downstream apps before passing it on.
* | | Fix handling of empty X_FORWARDED_HOST header.adam2015-03-201-1/+1
| | | | | | | | | | | | | | | | | | Previously, an empty X_FORWARDED_HOST header would cause Actiondispatch::Http:URL.raw_host_with_port to return nil, causing Actiondispatch::Http:URL.host to raise a NoMethodError.
* | | Compare content_type with Mime::XML instead of regexpBoris Peterbarg2015-03-161-1/+1
| | | | | | | | | | | | | | | Regexp is broken for both content types including charsets and for integration tests, where the content_type is a Mime::Type and not String
* | | Also skip Content-Encoding and Vary header if 304Kohei Suzuki2015-03-121-3/+4
| | |
* | | 304 response should not include Content-Type headerKohei Suzuki2015-03-101-1/+3
| | | | | | | | | | | | | | | Rack::Lint raises an error saying "Content-Type header found in 304 response, not allowed".
* | | Call super last in before_setupeileencodes2015-03-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the reasons 4cf3b8a, 303567e, and fa63448 needed to be reverted in 7142059. The revert has been reverted and this fixes the issues caused previously. If we call `super` first we will end up nuking the session settings in the application tests that do `setup do` - so any session login or cookie settings will not be persisted thoughout the test sessions. Calling `super` last prevents `@integration_session` from getting nuked and set to nil if it's already set. Test added to prevent regression of this behavior in the future.
* | | Revert "Revert integration test refactoring that caused app test regressions"eileencodes2015-03-091-14/+10
| | | | | | | | | | | | This reverts commit 714205988315d2f98aa3e749747c44470e18676b.
* | | update integration test example as is not output deprecation warning [ci skip]yuuji.yaginuma2015-03-071-7/+8
| | |
* | | pass a config to the route setAaron Patterson2015-03-052-5/+19
| | | | | | | | | | | | | | | This way we can get the relative_url_root from the application without setting another global value
* | | Merge pull request #19215 from ↵Sean Griffin2015-03-052-4/+2
|\ \ \ | | | | | | | | | | | | | | | | gsamokovarov/revert-ruby-2-2-0-kwarg-crash-workarounds Revert work arounds for upstream Ruby 2.2.0 kwargs bug
| * | | Revert work arounds for upstream Ruby 2.2.0 kwargs bugGenadi Samokovarov2015-03-052-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bug caused a segfault and you can find more info about it at: https://bugs.ruby-lang.org/issues/10685. We did a couple of work arounds, but 2.2.1 rolled out and those aren't needed anymore. Here are the reverted commits: - Revert "Work around for upstream Ruby bug #10685", commit 707a433870e9e06af688f85a4aedc64a90791a64. - Revert "Fix segmentation fault in ActionPack tests", commit 22e0a22d5f98e162290d9820891d8191e720ad3b. I'm also bumping the Ruby version check to 2.2.1 to prevent future segfaults.
* | | | nodoc filtered_location [ci skip]Sushruth Sivaramakrishnan2015-03-051-1/+1
|/ / /
* | | Drop request class from RouteSet constructor.Aaron Patterson2015-03-041-4/+7
| | | | | | | | | | | | | | | If you would like to use a custom request class, please subclass and implemet the `request_class` method.
* | | Merge pull request #18775 from yasyf/issue_5122Rafael Mendonça França2015-03-032-1/+5
|\ \ \ | | | | | | | | | | | | Fallback to RAILS_RELATIVE_URL_ROOT in `url_for`
| * | | Fallback to RAILS_RELATIVE_URL_ROOT in `url_for`.Yasyf Mohamedali2015-02-242-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | Fixed an issue where the `RAILS_RELATIVE_URL_ROOT` environment variable is not prepended to the path when `url_for` is called. If `SCRIPT_NAME` (used by Rack) is set, it takes precedence.
* | | | Merge pull request #19147 from gsamokovarov/work-around-ruby-10695Eileen M. Uchitelle2015-03-022-2/+4
|\ \ \ \ | | | | | | | | | | Work around for upstream Ruby bug #10685
| * | | | Work around for upstream Ruby bug #10685Genadi Samokovarov2015-03-012-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In f6e293ec54f02f83cdb37502bea117f66f87bcae we avoided a segfault in the tests, however I think we should try to avoid the crash, as it may happen in user code as well. Here is what I distiled the bug down to: ```ruby # Rails case - works on 2.0, 2.1; crashes on 2.2 require 'action_dispatch' ActionDispatch::Response.new(200, "Content-Type" => "text/xml") # General case - works on 2.0, 2.1; crashes on 2.2 def foo(optional = {}, default_argument: nil) end foo('quux' => 'bar') ```
* | | | | Merge pull request #15806 from tgxworld/partition_routes_during_setupAaron Patterson2015-03-022-8/+13
|\ \ \ \ \ | | | | | | | | | | | | Partition routes during setup.
| * | | | | Partition routes during setup.Guo Xiang Tan2015-02-262-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Partitioning of all the routes is currently being done during the first request. Since there is no need to clear the cache for `partitioned_routes` when adding a new route. We can move the partitioning of the routes during setup time.
* | | | | | be optimistic about missing route keysAaron Patterson2015-03-021-13/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this patch makes errors slightly more expensive when someone is missing a route key, but in exchange it drops 4 allocations per `url_for` call. Since missing a route key is an error, optimizing for the non-error path seems like a good trade off
* | | | | | use arg size for parallel iterationAaron Patterson2015-03-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | we already know the length of the args, so we can use that length for parallel iteration and cut down on allocations for `url_for` calls.
* | | | | | ask the routes objects for its Rack env keyAaron Patterson2015-03-022-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this centralizes the logic for determining the script name key and drops object allocations when calling `engine_script_name` (which is called on each `url_for`).
* | | | | | refactor `handle_model` to use private helper methods for generationAaron Patterson2015-03-011-8/+6
| | | | | |
* | | | | | drop allocations for string and class polymorphic routesAaron Patterson2015-03-011-3/+3
| | | | | |
* | | | | | drop string allocations per model url_for call in viewsAaron Patterson2015-03-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ```ruby article = Article.new.tap(&:save!) view.url_for article result = ObjectSpace::AllocationTracer.trace do 3000.times { view.url_for article } end p ObjectSpace::AllocationTracer.allocated_count_table[:T_STRING] / 3000 ```
* | | | | | move _generate_paths_by_default to where it is usedAaron Patterson2015-03-011-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _generate_paths_by_default wasn't used in AD::Routing::UrlFor, so we should be able to move it where it is used in AV::Routing