Inspect inline style for FactoryBot/AssociationStyle
#170
+404
−104
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.
Since there has been a long-standing desire to do so, I've made
FactoryBot/AssociationStylecapable of handling inline associations.Specifically, the need for inline association support has increased recently because autocorrection that generates inline association code has been newly added in the following change:
FactoryBot/FactoryAssociationWithStrategy#166Simply put, code like the following, which was not considered an offense until now, will now be regarded as an offense:
(In addition, it supports autocorrect except for complex situations.)
For this change, I decided not to support
EnforcedStyle: inline. This is because I personally have no desire to recommend the inline style even in situations where it can be substituted with other styles. Logically, it is feasible, but I believe it should only be supported when a clear use case emerges in the future.Before submitting the PR make sure the following are checked:
master(if not - rebase it).CHANGELOG.mdif the new code introduces user-observable changes.bundle exec rake) passes (be sure to run this locally, since it may produce updated documentation that you will need to commit).If you have created a new cop:
config/default.yml.Enabled: pendinginconfig/default.yml.VersionAdded: "<<next>>"indefault/config.yml.If you have modified an existing cop's configuration options:
VersionChanged: "<<next>>"inconfig/default.yml.