Fix an incorrect autocorrect for Rails/ContentTag
cop
#244
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Follow up to #242.
This PR allows
content_tag
when the first argument is a variable becausecontent_tag(name)
is simpler rather thantag.public_send(name)
.When
public_send
is used, it becomes complicated as follows.First,
content_tag(name)
cannot be corrected totag.name
when the first argument is a variable.So use
public_send
and prevent the following errors in that case:Case 1: Using
public_send
to prevent the followingNoMethodError
Original code:
Auto-corrected code (before):
Auto-corrected code (after):
Case 2: Using
symbolize_keys
to prevent the followingArgumentError
Original code:
Auto-corrected code (before):
Auto-corrected code (after):
The
symbolize_keys
may not be needed, but for safe auto-correctionit will be added if optional argument keys are not all symbols.
Case 3: Using
o ? o.symbolize_keys : {}
to prevent the followingArgumentError
Original code:
Auto-corrected code (before):
When the third argument is
nil
.Auto-corrected code (after):
Guard with the empty hash in case the third argument is
nil
.Before submitting the PR make sure the following are checked:
[Fix #issue-number]
(if the related issue exists).master
(if not - rebase it).and description in grammatically correct, complete sentences.
bundle exec rake default
. It executes all tests and RuboCop for itself, and generates the documentation.