Mry Migrates .Rubocop.Yml 💪
RuboCop has many many breaking changes, because it is before version 1.0.
So, if you update your RuboCop version, .rubocop.yml breaks in many cases...
This tool supports migrating
.rubocop.yml. It automatically renames the configuration in your
.rubocop.yml that was renamed by the updated RuboCop version. So, with this tool, you do not have to be afraid of updating RuboCop anymore!
Add this line to your application's Gemfile:
And then execute:
Or install it yourself as:
$ gem install mry
.rubocop.yml to latest release:
$ mry .rubocop.yml
.rubocop.yml to a specified version:
$ mry --target=0.51.0 .rubocop.yml
And you can specify the current RuboCop version.
If you specify a new RuboCop version, mry adds cops that were added in this new RuboCop version to your
With this feature, you can check new RuboCop cops with mry.
$ mry --from=0.50.0 --target=0.51.0 .rubocop.yml $ cat .rubocop.yml ... # The following cops are added between 0.50.0 and 0.51.0. # The configurations are default. # If you want to use a cop by default, remove a configuration for the cop from here. # If you want to disable a cop, change `Enabled` to false. # Supports --auto-correct Gemspec/OrderedDependencies: Description: Dependencies in the gemspec should be alphabetically sorted. Enabled: true Include: - "**/*.gemspec" TreatCommentsAsGroupSeparators: true # Supports --auto-correct Lint/RedundantWithObject: Description: Checks for redundant `with_object`. Enabled: true ...
How to support new version RuboCop
bin/check_rubocop_update script (depend on Ruby 2.6 or higher).
This script displays renamed, added and deleted cop names.
# Clone rubocop repository if it does not exist. $ git clone https://github.com/rubocop-hq/rubocop/ ~/path/to/rubocop/ $ bin/check_rubocop_update v0.55.0 v0.56.0 ~/path/to/rubocop/ (...log...) :added: - Lint/SplatKeywordArguments - Performance/InefficientHashSearch - Lint/ErbNewArguments - Rails/AssertNot - Rails/RefuteMethods :renamed: - :before: - Style/EmptyLineAfterGuardClause :after: - Layout/EmptyLineAfterGuardClause - :before: - Style/MethodMissing :after: - Style/MethodMissingSuper - Style/MissingRespondToMissing :deleted: 
lib/mry/rewriters.rb with this result.
Bug reports and pull requests are welcome on GitHub at https://github.com/pocke/mry.
Copyright 2017-2018 Masataka Pocke Kuwabara
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.