| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | | |
Rack [already implements `redirect?` on the response object](https://github.com/rack/rack/blob/1569a985e17d9caaf94d0e97d95ef642c4ab14ba/lib/rack/response.rb#L141) so we don't need to implement our own.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We shouldn't depend on specific methods imlemented in the TestResponse
subclass because the response could actually be a real response object.
In the future, we should either push the aliased predicate methods in
TestResponse up to the real response object, or remove them
|
| | | |
|
|\ \ \
| | | |
| | | | |
Removed usage line docs [ci skip]
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Concurrent load interlock (rm Rack::Lock)
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We can't actually lean on Rack::Lock's implementation, so we'll just
copy it instead. It's simple enough that that's not too troubling.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We don't need to fully disable concurrent requests: just ensure that
loads are performed in isolation.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
pass in the instance variable to start decoupling the meat of the parser
from the instance of the middleware
|
| |/ / /
|/| | |
| | | |
| | | |
| | | | |
We will always make an assignment to the env hash and eliminate a
conditional
|
| | | |
| | | |
| | | |
| | | |
| | | | |
If we only deal with proc objects, then we can eliminate type checking
in the parameter parsing middleware
|
| | | |
| | | |
| | | |
| | | | |
this prevents mutations from being available globally
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
We should leverage the request / response objects that the superclass
has already allocated for us.
|
|/ / / |
|
| | |
| | |
| | |
| | |
| | | |
we should be pushing the cookies in via headers rather than maintaining
some object and "recycling" it.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Allow filtering params based on parent keys
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Add the possibility to only filter parameters based on
their full path instead of relying on the immediate key.
config.filter_parameters += ['credit_card.code']
{ 'credit_card' => { 'code' => '[FILTERED]' },
'source' => { 'code' => '<%= puts 5 %>' } }
|
| |/ /
|/| |
| | |
| | |
| | |
| | | |
This change decouples `cookie_jar` allocation from the request object.
We need this for moving controller tests to integration tests so we can
access the `cookie_jar` object separately.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Clarify the `url_for` usage in mailers.
Re-add the documentation about `url_for` and Route's path parameters,
first introduced by 5c4f1859970d06228a0b67cad6d4486c1526ef2a.
This was reported on #15097 and until it is decided to deprecate it
or not, I believe the documentation should exist.
|
|\ \ \
| |/ /
|/| | |
Respect routing precedence for HEAD requests
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes the issue described in #18764 - prevents Rack middleware from
swallowing up HEAD requests that should have been matched by a
higher-precedence `get` route, but still allows Rack middleware to
respond to HEAD requests.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 0b3397872582f2cf1bc6960960a6393f477c55e6, reversing
changes made to 56d52e3749180e6c1dcf7166adbad967470aa78b.
As pointed out on the PR, this will hide development mistakes too, which
is not ideal.
|
|\ \ \
| | | |
| | | | |
Catch InvalidURIError on bad paths on redirect.
|
| | |/
| |/|
| | |
| | |
| | | |
Handle URI::InvalidURIError errors on the redirect route method, so it
wont raise a 500 if a bad path is given.
|
|/ / |
|
| |
| |
| |
| |
| |
| | |
People should be free to mutate the header object, but not to set a new
header object. That header object may be specific to the webserver, and
we need to hide it's internals.
|
| |
| |
| |
| |
| | |
this way we don't have to mutate the instance (as much) when writing a
rack response
|
| |
| |
| |
| |
| |
| | |
`ActionDispatch::SSL` changes headers to `Hash`.
So some headers will be broken if there are some middlewares
on ActionDispatch::SSL and if it uses `Rack::Utils::HeaderHash`.
|
| |
| |
| |
| |
| | |
I want to decouple Rails from the rack ENV as much as possible. We
should try to keep as few references to the env as possible
|
| | |
|
| |
| |
| |
| |
| | |
See the following commit to have context about this change:
https://github.com/rails/rails/commit/757a2bc3e3e52a5d9418656928db993db42b741b
|
| | |
|
| | |
|
| |
| |
| |
| | |
does the work
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
matches? should only deal with methods on the request object, so lets
just filter out anything that the request object doesn't respond to
|
| |
| |
| |
| |
| | |
this way we can remove the strange "respond_to?" conditional in the
`matches?` loop
|
| | |
|
| |
| |
| |
| | |
[Robin Dupret & Shunsuke Aida]
|
| |
| |
| |
| |
| | |
The `GetIp` class doesn't need to keep a reference to the middleware, so
there is no reason to pass the middleware instance to the `GetIp` class
|
|\ \
| | |
| | | |
Fix regression in #20017 wrong number of arguments error
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
and use coherent quoting/spacing.
This should hopefully fix a regression that was introduced with #20017,
causing deployment pushes to Heroku to be rejected with the following
trace:
ArgumentError: wrong number of arguments (2 for 3)
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/actionpack/lib/action_dispatch/middleware/s
tatic.rb:16:in `initialize'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/gem
s/heroku-deflater-0.5.3/lib/heroku-deflater/serve_zipped_assets.rb:15:in
`new'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/gem
s/heroku-deflater-0.5.3/lib/heroku-deflater/serve_zipped_assets.rb:15:in
`initialize'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/actionpack/lib/action_dispatch/middleware/s
tack.rb:43:in `new'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/actionpack/lib/action_dispatch/middleware/s
tack.rb:43:in `build'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/actionpack/lib/action_dispatch/middleware/s
tack.rb:118:in `block in build'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/actionpack/lib/action_dispatch/middleware/s
tack.rb:118:in `each'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/actionpack/lib/action_dispatch/middleware/s
tack.rb:118:in `inject'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/actionpack/lib/action_dispatch/middleware/s
tack.rb:118:in `build'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/railties/lib/rails/engine.rb:509:in `app'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/railties/lib/rails/application/finisher.rb:
34:in `block in <module:Finisher>'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/railties/lib/rails/initializable.rb:30:in
`instance_exec'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/railties/lib/rails/initializable.rb:30:in
`run'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/railties/lib/rails/initializable.rb:55:in
`block in run_initializers'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/railties/lib/rails/initializable.rb:54:in
`run_initializers'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/vendor/bundle/ruby/2.2.0/bun
dler/gems/rails-0ef7e73f0af7/railties/lib/rails/application.rb:352:in
`initialize!'
remote:
/tmp/build_a3b8845b716508af12d99859d1a58c5c/config/environment.rb:5:in
`<top (required)>'
|
|\ \ \
| | | |
| | | | |
Use block variable instead of global
|