aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
Commit message (Collapse)AuthorAgeFilesLines
* 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
| | |
* | | adds a regression test for the strong params converted arrays cacheXavier Noria2014-06-071-1/+18
| | | | | | | | | | | | This is a regression test for 29844dd.
* | | Revert "Convert StrongParameters cache to a hash. This fixes an unbounded"Xavier Noria2014-06-072-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We cannot cache keys because arrays are mutable. We rather want to cache the arrays. This behaviour is tailor-made for the usage pattern strongs params is designed for. In a forthcoming commit I am going to add a test that covers why we need to cache by value. Every strong params instance has a live span of a request, the cache goes away with the object. Since strong params have such a concrete intention, it would be interesting to see if there are actually any real-world use cases that are an actual leak, one that practically may matter. I am not convinced that the theoretical leak has any practical consequences, but if it can be shown there are, then I believe we should either get rid of the cache (which is an optimization), or else wipe it in the mutating API. This reverts commit e63be2769c039e4e9ada523a8497ce3206cc8a9b.
* | | [ci skip] Fix capitalizationAkshay Vishnoi2014-06-072-3/+3
| | |