| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
https://travis-ci.org/rails/rails/jobs/304428814#L1977
|
|\
| |
| | |
Cache regexps generated from acronym_regex
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
To be removed in Rails 6.0 (default for the deprecate helper). Code
moved around as well for the ActiveSupport::Deprecation modules, since
it was dependent on ActiveSupport::Inflector being loaded for it to
work. By "lazy loading" the Inflector code from within the Deprecation
code, we can require ActiveSupport::Deprecation from
ActiveSupport::Inflector and not get a circular dependency issue.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The Problem
-----------
The following line from `String#camelize`:
string = string.sub(/^(?:#{inflections.acronym_regex}(?=\b|[A-Z_])|\w)/) { |match| match.downcase }
and the following line from `String#camelize`:
word.gsub!(/(?:(?<=([A-Za-z\d]))|\b)(#{inflections.acronym_regex})(?=\b|[^a-z])/) { "#{$1 && '_'.freeze }#{$2.downcase}" }#{$2.downcase}" }
Both generate the same regexep in the first part of the `.sub`/`.gsub`
method calls every time the function is called, creating an extra object
allocation each time. The value of `acronym_regex` only changes if the
user decides add an acronym to the current set of inflections and apends
another string on the the regexp generated here, but beyond that it
remains relatively static.
This has been around since acronym support was introduced back in 2011
in PR#1648.
Proposed Solution
-----------------
To avoid re-generating these strings every time these methods are
called, cache the values of these regular expressions in the
`ActiveSupport::Inflector::Inflections` instance, making it so these
regular expressions are only generated once, or when the acronym's are
added to.
Other notable changes is the attr_readers are nodoc'd, as they shouldn't
really be public APIs for users. Also, the new method,
define_acronym_regex_patterns, is the only method in charge of
manipulating @acronym_regex, and initialize_dup also makes use of that
new change.
** Note about fix for non-deterministic actionpack test **
With the introduction of `@acronym_underscore_regex` and
`@acronym_camelize_regex`, tests that manipulated these for a short
time, then reset them could caused test failures to happen. This
happened because the previous way we reset the `@acronyms` and
`@acronym_regex` was the set them using #instance_variable_set, which
wouldn't run the #define_acronym_regex_patterns method.
This has now been introduced into the actionpack tests to avoid this
failure.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
## Summary
RuboCop 0.51.0 was released.
https://github.com/bbatsov/rubocop/releases/tag/v0.51.0
And rubocop-0-51 channel is available in Code Climate.
https://github.com/codeclimate/codeclimate-rubocop/issues/109
This PR will bump RuboCop to 0.51.0 and fixes the following new
offenses.
```console
% bundle exec rubocop
Inspecting 2358 files
(snip)
Offenses:
actionpack/lib/action_controller/metal/http_authentication.rb:251:59: C:
Prefer double-quoted strings unless you need single quotes to avoid
extra backslashes for escaping.
[key.strip, value.to_s.gsub(/^"|"$/, "").delete('\'')]
^^^^
activesupport/test/core_ext/load_error_test.rb:8:39: C: Prefer
double-quoted strings unless you need single quotes to avoid extra
backslashes for escaping.
assert_raise(LoadError) { require 'no_this_file_don\'t_exist' }
^^^^^^^^^^^^^^^^^^^^^^^^^^^
2358 files inspected, 2 offenses detected
```
|
|\ \
| | |
| | |
| | | |
Use `Tempfile.create`
|
| | |
| | |
| | |
| | | |
As `@cache_path` is expected to be a directory name, use `Dir.mktmpdir`.
And omit unnecessary `Dir.tmpdir`.
|
|/ /
| |
| | |
Instead of `Dir::Tmpname.make_tmpname`, an internal method which does not guarantee uniqueness, use `Tempfile.create`.
|
|\ \
| | |
| | | |
Fix typoes on ActionDispatch::HTTP::FilterParameters
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | | |
Make `assert_recognizes` to traverse mounted engines
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Before this commit paths of mounted engines are not traversed
when `assert_recognizes` is called, causing strange test results.
This commit enable to traverse mounted paths.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Unlike `resize_window`, `resize_window_to` has three arguments.
https://github.com/thoughtbot/capybara-webkit/blob/d63c3c8e3ae844f0c59359532a6dcb50f4a64d0a/lib/capybara/webkit/driver.rb#L135-L143
Therefore, if pass only width and height just like `resize_window`,
`ArgumentError`will be raised.
To prevent this, explicitly pass window handler.
Follow up of #31046
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
y-yagi/show_request_forgery_protection_methods_in_api_doc
Show `RequestForgeryProtection` methods in api doc [ci skip]
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Several methods of `RequestForgeryProtection` are not showed in the api
doc even though `:doc:` is specified.
(e.g. `form_authenticity_param`)
http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection.html
These methods are listed in the doc of v4.1.
http://api.rubyonrails.org/v4.1/classes/ActionController/RequestForgeryProtection.html
This is due to the influence of `:nodoc:` added in #18102, methods after
`CROSS_ORIGIN_JAVASCRIPT_WARNING` not showed from the doc.
Therefore, in order to show the method like originally, added `startdoc`
after `CROSS_ORIGIN_JAVASCRIPT_WARNING`.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix Capybara::Webkit::Driver#resize_window deprecation warning
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | | |
>[DEPRECATION] Capybara::Webkit::Driver#resize_window is
deprecated. Please use Capybara::Window#resize_to instead.
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
[ci skip]Fix typo in comments.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Long source lines cause line wrapping in the extracted
source section of the rescue handler page which can make
the line numbers not match up with the source lines.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Remove redundant return statements
|
| | | | | |
|
|\ \ \ \ \
| |/ / / /
|/| | | |
| | | | | |
Removed unnecessary semicolons
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
Add load hook for `ActionDispatch::SystemTestCase`
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is useful to extend `SystemTestCase`.
Also, since other test classes already have load hooks, should also be
in `SystemTestCase`.
Ref: 0510208dd1ff23baa619884c0abcae4d141fae53
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Remove mention of X-Post-Data-Format header [ci skip]
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | | |
Support for this header was removed when `actionpack-xml_parser` was
extracted, and has since been dropped from the gem.
|
|/ / / /
| | | |
| | | | |
See: https://github.com/teamcapybara/capybara/blob/7d693f068c44f6a460336da70fb6e9e5f94f3db9/lib/capybara.rb#L450
|
| | | |
| | | |
| | | |
| | | | |
as well
|
| | | |
| | | |
| | | |
| | | | |
to properly wrap all attributes, including those which are nested.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Upgraded rails applications may have a Gemfile without a new enough
capybara to run system tests. Setting a version here gives the user a
more direct error message than they get otherwise. Resolves #30952
|
| | | | |
|
| |_|/
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
method [ci skip]
Related to #30850
|
| | |
| | |
| | |
| | |
| | | |
This basically reverts e9fca7668b9eba82bcc832cb0061459703368397, d08da958b9ae17d4bbe4c9d7db497ece2450db5f,
d1fe1dcf8ab1c0210a37c2a78c1ee52cf199a66d, and 68eaf7b4d5f2bb56d939f71c5ece2d61cf6680a3
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`:api:` tag was removed in 5349f231 since RDoc doesn't support `:api:`
tag. But those methods are not private API, they are public API for
renderers. The renderers should be able to know that they can override
this method.
|
| | |
| | |
| | |
| | | |
`UnknownController` was added in b1999be, but it is not used anywhere.
|
|\ \ \
| | | |
| | | | |
Add headless chrome driver to System Tests
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This method added by 1008511. It is unnecessary because it is no longer called
by 19c3495.
|
|/ / / |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Add allow_other_host option to redirect_back method
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | | |
The example was slightly incorrect. This commit also adds a test case
for this example to cookies middleware unit tests.
|
| | | |
|