aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch
Commit message (Collapse)AuthorAgeFilesLines
* improve performance of integration tests.Aaron Patterson2015-01-271-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I found delegate to be a bottleneck during integration tests. Here is the test case: ```ruby require 'test_helper' class DocumentsIntegrationTest < ActionDispatch::IntegrationTest test "index" do get '/documents' assert_equal 200, response.status end end Minitest.run_one_method(DocumentsIntegrationTest, 'test_index') StackProf.run(mode: :wall, out: 'stackprof.dump') do 3000.times do Minitest.run_one_method(DocumentsIntegrationTest, 'test_index') end end ``` Top of the stack: ``` [aaron@TC integration_performance_test (master)]$ stackprof stackprof.dump ================================== Mode: wall(1000) Samples: 23694 (7.26% miss rate) GC: 1584 (6.69%) ================================== TOTAL (pct) SAMPLES (pct) FRAME 7058 (29.8%) 6178 (26.1%) block in Module#delegate 680 (2.9%) 680 (2.9%) ActiveSupport::PerThreadRegistry#instance 405 (1.7%) 405 (1.7%) ThreadSafe::NonConcurrentCacheBackend#[] 383 (1.6%) 383 (1.6%) Set#include? 317 (1.3%) 317 (1.3%) ActiveRecord::Base.logger 281 (1.2%) 281 (1.2%) Rack::Utils::HeaderHash#[]= 269 (1.1%) 269 (1.1%) ActiveSupport::Notifications::Fanout::Subscribers::Evented#subscribed_to? 262 (1.1%) 262 (1.1%) block (4 levels) in Class#class_attribute 384 (1.6%) 246 (1.0%) block (2 levels) in Class#class_attribute ``` According to @eileencodes's tests, this speeds up integration tests so that they are only 1.4x slower than functional tests: Before: INDEX: Integration Test: 153.2 i/s - 2.43x slower After: INDEX: Integration Test: 275.1 i/s - 1.41x slower
* Merge pull request #18483 from rono23/fix-name_for_action-in-routingSantiago Pastorino2015-01-191-2/+3
|\ | | | | Fix name_for_action in routing
| * Fix name_for_action in routingrono232015-01-191-2/+3
| |
* | Extract `Date` header to string constant in Http Response, similar to other ↵Vipul A M2015-01-141-3/+4
|/ | | | headers
* Default headers, removed in controller actions, will not be reapplied to the ↵Jonas Baumann2015-01-091-0/+7
| | | | test response.
* Changing sets -> set Lindsey Bieda2015-01-061-1/+1
| | | Updating some minor grammar issue.
* Remove some comments about Ruby 1.9 behaviorsRafael Mendonça França2015-01-041-1/+1
|
* Remove unneeded requiresRafael Mendonça França2015-01-043-3/+0
| | | | These requires were added only to change deprecation message
* Remove deprecated assertion filesRafael Mendonça França2015-01-043-9/+0
|
* Remove deprecated usage of string keys in URL helpersRafael Mendonça França2015-01-041-17/+1
|
* Remove deprecated `only_path` option on `*_path` helpersRafael Mendonça França2015-01-041-28/+1
|
* Remove deprecate `*_path` helpers in email viewsRafael Mendonça França2015-01-041-25/+4
|
* Remove deprecated `NamedRouteCollection#helpers`Rafael Mendonça França2015-01-041-8/+0
|
* Remove deprecated support to define routes with `:to` option thatRafael Mendonça França2015-01-041-17/+2
| | | | doesn't contain `#`
* Remove deprecated `ActionDispatch::Response#to_ary`Rafael Mendonça França2015-01-041-15/+0
|
* Remove deprecated `ActionDispatch::Request#deep_munge`Rafael Mendonça França2015-01-041-9/+0
|
* Remove deprecated `ActionDispatch::Http::Parameters#symbolized_path_parameters`Rafael Mendonça França2015-01-041-8/+0
|
* Remove deprecated option `use_route` in controller testsRafael Mendonça França2015-01-041-15/+0
|
* stop referencing `env` in url_forAaron Patterson2014-12-301-0/+4
| | | | | encapsulate env in the request so that we can eventually move away from the env hash
* use methods on the request rather than direct hash accessAaron Patterson2014-12-301-0/+8
| | | | this will help decouple us from using the rack env hash
* Fix form_for to work with objects that implement to_modelTravis Grathwell2014-12-291-5/+6
| | | | | | | | | | | | | Previously, if you tried to use form_for with a presenter object that implements to_model, it would crash in action_dispatch/routing/polymorphic_routes.rb when asking the presenter whether it is .persisted? Now, we always ask .persisted? of the to_model object instead. This seems to been an issue since 1606fc9d840da869a60213bc889da6fcf1fdc431 Signed-off-by: Eugenia Dellapenna <eugenia.dellapenna@gmail.com>
* Move longer form example from integration guide to api reference, below anZachary Scott2014-12-291-0/+78
| | | | | | | | existing example. [ci skip] My reasoning is that this is probably too much information for the complete Rails testing guide, as we're trying to cover testing all aspects of the framework.
* Remove ActionController::ModelNamingclaudiob2014-12-251-4/+0
| | | | | | | | | | | | | | The methods in these modules are not used anywhere. They used to be invoked in polymorphic_routes.rb but their usage was removed in e821045. What is your opinion about removing these methods? They do belong to the public API, but in reality their code has already been duplicated to ActionView::ModelNaming, since they are used by methods like `dom_id` and `dom_class` to associated records with DOM elements (in ActionView). Please tell me if you think that removing this module is a good idea and, in that case, if the PR is okay as it is, or you'd rather start by showing a deprecation message, and remove the module in Rails 5.1.
* - Removed unused parameter to cookie serialize method and fixed usage of the ↵Vipul A M2014-12-241-4/+4
| | | | same elsewhere
* Merge branch 'master' of github.com:rails/docrailsVijay Dev2014-12-201-0/+109
|\
| * Add docs for ActionDispatch::Http::URL methodsclaudiob2014-12-181-0/+109
| | | | | | | | | | | | | | | | | | | | Add docs for `extract_domain`, `extract_subdomains`, `extract_subdomain`. Add doc examples for `url`, `protocol`, `raw_host_with_port`, `host`, `host_with_port`, `port`, `standard_port`, `standard_port?`, `optional_port`, `port_string`. [ci skip]
* | allow reseting of request variantsTimo Schilling2014-12-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current implementation of `variants=` don't allow a resetting to nil, wich is the default value. This results in the following code smell: ```ruby case request.user_agent when /iPhone/ request.variants = :phone when /iPad/ request.variants = :ipad end ``` With the ability to reset variants to nil, it could be: ```ruby request.variants = case request.user_agent when /iPhone/ :phone when /iPad/ :ipad end ```
* | Don't convert empty arrays to nils when deep munging paramsChris Sinjakli2014-12-151-4/+0
|/
* Merge pull request #18022 from agrobbin/url-helpers-optional-scopesSantiago Pastorino2014-12-131-1/+1
|\ | | | | Allow URL helpers to work with optional scopes
| * allow URL helpers to work with optional scopesAlex Robbin2014-12-131-1/+1
| |
* | ParameterFilter shouldn't try to dup symbol keysNate Berkopec2014-12-131-1/+1
|/
* Fix handling of positional url helper arguments when format is falseTatiana Soukiassian2014-12-131-2/+8
| | | | | | | There is no need to subtract one from the path_params size when there is no format parameter because it is not present in the path_params array. Fixes #17819.
* Only check that it is a Rails application onceRafael Mendonça França2014-12-081-5/+7
| | | | Also avoid using try since is_a? is faster for this case.
* Mounted Rack apps should have default named routes based on app nameT.J. Schuck2014-12-061-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a regression in 4.2.0 from 4.1.8. https://github.com/rails/rails/pull/17823 fixed a similar regression regarding _explicitly_ named routes for a mounted Rack app, but there was another regression for the default value. With a route like: Rails.application.routes.draw do mount Mountable::Web, at: 'some_route' end The "Prefix" column of rake routes gives the following: - 4.1.8: mountable_web - 4.2.0.beta1-4: [nothing] - 4.2.0.rc1: [nothing] - 4.2.0.rc2: some_route <- regression This fixes the default to go back to being based off the name of the class like the docs specify: https://github.com/rails/rails/blob/785d04e3109f69d0b9b9f4732179592f0ef04e52/actionpack/lib/action_dispatch/routing/mapper.rb#L558-L560 Explicitly named routes still work correctly per https://github.com/rails/rails/pull/17823: Rails.application.routes.draw do mount Mountable::Web, at: 'some_route', as: 'named' end - 4.1.8: named - 4.2.0.beta1-4: [nothing] - 4.2.0.rc1: [nothing] - 4.2.0.rc2: named
* remove unused `#optional_parts`Sergey Alekseev2014-12-051-4/+0
| | | | | This method was copied from journey at https://github.com/rails/rails/commit/56fee39c392788314c44a575b3fd66e16a50c8b5#diff-2cfaf53c860732fea8689d6f2002594bR78. `grep -nr 'optional_parts' .`
* remove unused `#generalized_table`Sergey Alekseev2014-12-051-45/+0
| | | | This method wass copied from journey at https://github.com/rails/rails/commit/56fee39c392788314c44a575b3fd66e16a50c8b5#diff-d89de8881fc4b9f10cb3e4fc7b2463f3R53. However it looks the method was unused in journey at those point as well.
* We don't need to call to_sym. Just compare the stringRafael Mendonça França2014-12-041-1/+1
|
* Merge pull request #17792 from rockrep/masterRafael Mendonça França2014-12-041-1/+1
|\ | | | | | | allow 'all' for :domain option in addition to :all
| * allow 'all' for :domain option in addition to :allrockrep2014-11-261-1/+1
| |
* | Action View is needed for DebugExceptionsRafael Mendonça França2014-12-021-0/+2
| | | | | | | | We should remove this dependency later.
* | Merge pull request #17873 from kirs/refactor-debug-erbRafael Mendonça França2014-12-023-23/+31
|\ \ | | | | | | Refactor debug view
| * | Refactor debug viewKir Shatrov2014-12-023-23/+31
| | | | | | | | | Avoid logic in ERB and use helpers
* | | Merge pull request #17862 from lucasmazza/lm-hide-actionRafael Mendonça França2014-12-021-0/+2
|/ / | | | | | | `_generate_paths_by_default` should always be private.
* | Merge pull request #17827 from rkh/rkh-fix-or-patternAaron Patterson2014-12-011-0/+5
|\ \ | | | | | | Fix OR in Journey patterns
| * | make OR in journey patterns compile to a valid regular expressionKonstantin Haase2014-11-291-0/+5
| | |
* | | Pretty-print request params on exception pageKir Shatrov2014-12-012-1/+9
| | |
* | | Merge pull request #17823 from byroot/fix-mount-rack-apps-with-asSean Griffin2014-11-291-7/+1
|\ \ \ | | | | | | | | Pure rack apps can be mounted with a name
| * | | Pure rack apps can be mounted with a nameJean Boussier2014-11-291-7/+1
| |/ / | | | | | | | | | See https://github.com/rails/rails/commit/9b15828b5c347395b42066a588c88e5eb4e72279#commitcomment-8764492
* / / Pass symbol as an argument instead of a blockErik Michaels-Ober2014-11-298-15/+13
|/ /
* | Merge pull request #17803 from sadfuzzy/patch-2Abdelkader Boudih2014-11-271-1/+3
| | | | | | | | | | | | Update cookies.rb Conflicts: actionpack/lib/action_dispatch/middleware/cookies.rb