aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #15933 from rafael/masterRafael Mendonça França2014-06-274-5/+59
|\ | | | | | | | | | | Add always permitted parameters as a configurable option. [Rafael Mendonça França + Gary S. Weaver]
| * Improvements per code review.Rafael Chacón2014-06-272-4/+32
| | | | | | | | | | | | * General style fixes. * Add changes to configuration guide. * Add missing tests.
| * Add always_permitted_parameters as an option.Rafael Chacón2014-06-262-5/+25
| | | | | | | | | | | | | | | | | | * This commit adds back the always_permitted_parameters configuration option to strong paramaters. * The initial pull requests where this feature was added are the following: - https://github.com/rails/rails/pull/12682 - https://github.com/rails/strong_parameters/pull/174
* | Merge pull request #15836 from DNNX/router-swap-select-sortRafael Mendonça França2014-06-241-1/+2
|\ \ | | | | | | Replace x.sort_by!.select! with x.select!.sort_by!
| * | Replace x.sort_by!.select! with x.select!.sort_by!Viktar Basharymau2014-06-201-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The latter has the same speed as the former in the worst case and faster in general, because it is always better to sort less items. Unfortunately, `routes.select!{...}.sort_by!{...}` is not possible here because `select!` returns `nil`, so select! and sort! must be done in two steps.
* | | `:nodoc: all` does not remove the constants from the API. [ci skip]Yves Senn2014-06-241-1/+1
|/ / | | | | | | | | Need to add individual `:nodoc:` for nested classes / modules to completely remove the constants from the API.
* | Merge pull request #15537 from tgxworld/fix_state_leakMatthew Draper2014-06-204-5/+5
|\ \ | | | | | | Fix state leak.
| * | Remove redundant code.Guo Xiang Tan2014-06-051-4/+0
| | |
| * | Prevent state leak.Guo Xiang Tan2014-06-054-1/+5
| | |
* | | add both branches to the only_path conditionalAaron Patterson2014-06-191-6/+6
| | |
* | | Relpace `=~ Regexp.new str` with `.include? str` in AC::Base#_valid_action_name?Viktar Basharymau2014-06-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because it is more natural way to test substring inclusion. Also, in this particular case it is much faster. In general, using `Regexp.new str` for such kind of things is dangerous. The string must be escaped, unless you know what you're doing. Example: Regexp.new "\\" # HELLO WINDOWS # RegexpError: too short escape sequence: /\/ The right way to do this is escape the string Regexp.new Regexp.escape "\\" # => /\\/ Here is the benchmark showing how faster `include?` call is. ``` require 'benchmark/ips' Benchmark.ips do |x| x.report('include?') { !"index".to_s.include? File::SEPARATOR } x.report(' !~ ') { "index" !~ Regexp.new(File::SEPARATOR) } end __END__ Calculating ------------------------------------- include? 75754 i/100ms !~ 21089 i/100ms ------------------------------------------------- include? 3172882.3 (±4.5%) i/s - 15832586 in 5.000659s !~ 322918.8 (±8.6%) i/s - 1602764 in 4.999509s ``` Extra `.to_s` call is needed to handle the case when `action_name` is `nil`. If it is omitted, some tests fail.
* | | [ci skip] /javascript/ ~> JavaScriptAditya Kapoor2014-06-171-3/+3
| | |
* | | Merge pull request #15744 from mmozuras/special_keys_setYves Senn2014-06-161-1/+1
|\ \ \ | | | | | | | | Change Http::Cache::SPECIAL_KEYS from Array to Set
| * | | Change Http::Cache::SPECIAL_KEYS from Array to SetMindaugas Mozūras2014-06-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Slightly improves performance, for example, a simple benchmark: ```ruby require 'benchmark/ips' require 'set' SPECIAL_KEYS = %w[extras no-cache max-age public must-revalidate] SPECIAL_KEYS_SET = Set.new(SPECIAL_KEYS) directive = 'must-revalidate' Benchmark.ips do |x| x.report('array') { SPECIAL_KEYS.include?(directive) } x.report('set') { SPECIAL_KEYS_SET.include?(directive) } end ``` Output: ``` ------------------------------------- array 67926 i/100ms set 74054 i/100ms ------------------------------------- array 2318423.4 (±2.8%) i/s - 11615346 in 5.014899s set 3387981.8 (±4.7%) i/s - 16958366 in 5.019355s ```
* | | | Merge pull request #15743 from tgxworld/remove_unused_parametersYves Senn2014-06-161-1/+1
|\ \ \ \ | | | | | | | | | | Remove unused parameter.
| * | | | Remove unused parameter.Guo Xiang Tan2014-06-151-1/+1
| |/ / /
* / / / Remove unused param 'separators' from RouteSet#build_pathMindaugas Mozūras2014-06-151-2/+2
|/ / /
* | | Fix request's path_info when a rack app mounted at '/'.Larry Lv2014-06-143-0/+14
| | | | | | | | | | | | Fixes issue #15511.
* | | Merge pull request #15692 from sromano/falseClassMatthew Draper2014-06-143-2/+29
|\ \ \ | | | | | | | | | | | | ActionController::Parameters#require now accepts FalseClass values
| * | | ActionController::Parameters#require now accepts FalseClass valuesSergio Romano2014-06-133-1/+24
|/ / / | | | | | | | | | Fixes #15685.
* | | Merge pull request #15682 from tgxworld/controller_test_processRafael Mendonça França2014-06-131-2/+5
|\ \ \ | | | | | | | | Set flash in test session when necessary.
| * | | Set flash in test session when necessary.Guo Xiang Tan2014-06-121-2/+5
| | | | | | | | | | | | | | | | `to_session_value` returns nil when empty.
* | | | Fix parsed token value with header `Authorization token=`.Larry Lv2014-06-133-8/+32
| | | |
* | | | Set the status before of setting the response bodyGuillermo Iguaran2014-06-131-2/+2
|/ / / | | | | | | | | | | | | | | | | | | The 401 status should be set first because setting the response body in a live controller also closes the response to further changes. Fixes #14229.
* | | only check named_host? once in normalize_hostAaron Patterson2014-06-121-3/+7
| | |
* | | lookup subdomain from the options hash once, defaulting to trueAaron Patterson2014-06-121-2/+2
| | | | | | | | | | | | | | | if the subdomain wasn't specified, it's the same as if specifying :subdomain as `true`, so we can default the value to `true` safely.
* | | only extract domain from the options hash onceAaron Patterson2014-06-121-3/+4
| | |
* | | reduce calls to `named_host?`Aaron Patterson2014-06-121-2/+6
| | | | | | | | | | | | | | | `normalize_host` already calls `named_host?`, so there is no reason to test `named_host?` again in the `extract_domain` method.
* | | use Ruby for mockingAaron Patterson2014-06-121-1/+1
| | |
* | | Removed warning actionpack url.rbJuanito Fatas2014-06-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before: /Users/Juan/dev/rails/actionpack/lib/action_dispatch/http/url.rb:95: warning: shadowing outer local variable - port After: No warning
* | | remove useless to_param callAaron Patterson2014-06-111-1/+1
| | | | | | | | | | | | | | | extract_subdomain always returns a string, and to_param calls to_s on a string
* | | only look up the subdomain onceAaron Patterson2014-06-111-3/+4
| | |
* | | scheme should contain one or more charactersAaron Patterson2014-06-111-1/+1
| | |
* | | pull the port out of the options hash onceAaron Patterson2014-06-111-2/+3
| | |
* | | remove useless nil checkAaron Patterson2014-06-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | irb(main):004:0> /foo/ !~ nil => true irb(main):005:0> /foo/ !~ 'bar' => true irb(main):006:0> /foo/ !~ 'foo' => false
* | | these methods are always called with a tld_parameterAaron Patterson2014-06-111-3/+3
| | | | | | | | | | | | | | | remove the default parameter since the methods are always called with a parameter
* | | rm `same_host?`. The same conditional is two lines down.Aaron Patterson2014-06-111-5/+3
| | |
* | | Revert "rm `same_host?`. The same conditional is two lines down."Aaron Patterson2014-06-111-5/+8
| | | | | | | | | | | | This reverts commit 79469b4b0c05a50e19699bc9b568042add2d4987.
* | | rm `same_host?`. The same conditional is two lines down.Aaron Patterson2014-06-111-8/+5
| | |
* | | Merge pull request #15648 from kuldeepaggarwal/fix-warningsRafael Mendonça França2014-06-112-3/+0
|\ \ \ | | | | | | | | remove warnings
| * | | remove warningsKuldeep Aggarwal2014-06-122-3/+0
| | | | | | | | | | | | | | | | warning: assigned but unused variable - scope_called, path and strexp
* | | | cache host on the stack so we only look it up onceAaron Patterson2014-06-111-8/+9
| | | |
* | | | only pull :protocol from the options hash onceAaron Patterson2014-06-111-2/+3
| | | |
* | | | cache protocol on the stack to reduce options hash lookupsAaron Patterson2014-06-111-7/+7
| | | |
* | | | eliminate nil checks in normalize_portAaron Patterson2014-06-111-7/+7
| | | |
* | | | reduce hash lookups and disconnect normalize_port from the options hashAaron Patterson2014-06-111-9/+9
|/ / /
* | | Merge pull request #15545 from zuhao/refactor_actionpack_assert_select_testYves Senn2014-06-081-1/+4
|\ \ \ | | | | | | | | Restore test deliveries for ActionMailer.
| * | | Restore test deliveries for ActionMailer.Zuhao Wan2014-06-071-1/+4
| | | |
* | | | Handle client disconnect during live streamingMatthew Draper2014-06-084-13/+189
| | | | | | | | | | | | | | | | .. even when the producer is blocked for a write.
* | | | adds some details to the rationale of converted_arrays [ci skip]Xavier Noria2014-06-072-1/+5
| | | |