| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://github.com/ruby/ruby/pull/579 - there is a new optimization
since ruby 2.2
Previously regexp patterns were faster (since a string was converted to
regexp underneath anyway). But now string patterns are faster and
better reflect the purpose.
Benchmark.ips do |bm|
bm.report('regexp') { 'this is ::a random string'.gsub(/::/, '/') }
bm.report('string') { 'this is ::a random string'.gsub('::', '/') }
bm.compare!
end
# string: 753724.4 i/s
# regexp: 501443.1 i/s - 1.50x slower
|
|\
| |
| | |
Return super in ActionController::Parameters.const_missing
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The current implementation of ActionController::Parameters.const_missing
returns `ActionController::Parameters.always_permitted_parameters` even
if its `super` returns a constant without raising error. This prevents its
subclass in a autoloading module/class from taking advantage of
autoloading constants.
class SomeParameters < ActionController::Parameters
def do_something
DefinedSomewhere.do_something
end
end
In the code above, `DefinedSomewhere` is to be autoloaded with
`Module.const_missing` but `ActionController::Parameters.const_missing`
returns `always_permitted_parameters` instead of the autoloaded
constant.
This pull request fixes the issue respecting `const_missing`'s `super`.
|
| |
| |
| |
| |
| | |
setup as block run before setup actlually runs so it will fail for our
case
|
|\ \
| |/
|/|
| | |
Provide friendlier access to request variants
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Closes #18933.
|
|/ |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Preserving RACK_ENV behavior.
This reverts commit 7bdc7635b885e473f6a577264fd8efad1c02174f, reversing
changes made to 45786be516e13d55a1fca9a4abaddd5781209103.
|
|
|
|
|
|
| |
ActionDispatch::IntegrationTest HTTP request methods will accept only
certain kwargs in the future. This test caused a deprecation warning
when running ActionPack tests. Added `params` and `headers` to fix.
|
| |
|
| |
|
|
|
|
|
| |
Regexp is broken for both content types including charsets and for
integration tests, where the content_type is a Mime::Type and not String
|
| |
|
|\
| |
| | |
Return truthy value from head method
|
| |
| |
| |
| |
| |
| | |
It was returning false in normal circumstances.
This broke the `head :ok and return if` construct.
Add appropriate test.
|
|\ \
| | |
| | | |
Use request.session.id instead of request.session_options[:id]
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
As of the upgrade to Rack 1.5, request.session_options[:id] is no
longer populated. Reflect this change in the tests by using
request.session.id instead.
Related change in Rack:
https://github.com/rack/rack/commit/83a270d6
|
|\ \
| |/
|/| |
304 response should not include Content-Type header
|
| | |
|
| |
| |
| |
| |
| | |
Rack::Lint raises an error saying "Content-Type header found in 304
response, not allowed".
|
|\ \
| |/
|/| |
Let strip_tags leave HTML escaping to Rails.
|
| |
| |
| |
| | |
Prevents double escaping errors, such as "&" becoming "&amp;".
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
This reverts commit 714205988315d2f98aa3e749747c44470e18676b.
|
|/
|
|
| |
This is a follow-up to #19257
|
| |
|
|\
| |
| | |
Fix documentation of url_for module [ci skip]
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- The request needs to be instance of ActionDispatch::Request or an
object that responds to host, optional_port, protocol and
symbolized_path_parameter.
- This documentation was correctly added in
https://github.com/rails/rails/commit/e3b3f416b57f5642ea25078485f7e9394ad04526
but was changed to
https://github.com/rails/rails/commit/e1ceae576e3911f3e6708b5d19a0e3ef63769eb7.
- Fixes #16160.
|
|\ \
| |/
|/| |
Run all our tests in random order
|
| |
| |
| |
| | |
This reverts commit 7025d7769dc53f0a3ffab8b537727ef3fee367fc.
|
|/
|
|
|
| |
This way we can get the relative_url_root from the application without
setting another global value
|
|\
| |
| |
| |
| | |
gsamokovarov/revert-ruby-2-2-0-kwarg-crash-workarounds
Revert work arounds for upstream Ruby 2.2.0 kwargs bug
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | | |
Added doc [ci skip]
|
| | | |
|
|/ / |
|
|/ |
|
| |
|
| |
|
|
|
|
|
| |
If you would like to use a custom request class, please subclass and implemet
the `request_class` method.
|
| |
|
|\
| |
| |
| | |
Fallback to RAILS_RELATIVE_URL_ROOT in `url_for`
|