I like coding style guides. Having a consistent style removes that little bit of friction that writing code in multiple styles creates. This article is a quick tutorial on how to get Rubocop - a static code analyzer for Ruby - up and running.
group :development do
gem "rubocop", require: false
end
To get a sense of the style violations in your project, simply run the 'rubocop' command from the command line.
> rubocop
You might have an overwhelming number of violations, especially if bringing Rubocop into an existing project. Rubocop has a really nice feature that allows you to acknowledge the violations, but push them off into their own file to tackle at a later time. To invoke this feature, run Rubocop with the --auto-gen-flag to create the .rubocop_todo.yml
> rubocop --auto-gen-config
The rubocop_todo.yml creates a list of all of your violations. You can then reference this file from your .rubocop.yml settings file, wiping the slate clean, ignoring violations for the time being.
inherit_from:
- .rubocop_todo.yml
Then, simply remove a single rule from .rubocop_todo.yml, rerun the 'rubocop' command (without the --auto-gen-flag), and fix the presented violation. Rinse and repeat until you have a clean project.
If you find that you disagree with a given rule, you can override the rule in your .rubocop.yml file. Let's say that I like double quotes better than single quotes. Simply add:
Style/StringLiterals:
EnforcedStyle: double_quotes
SupportedStyles:
- single_quotes
- double_quotes
It can be a little tricky to identify which violation comes from which rule, but a little bit of searching through the .rubocop_todo.yml should do the trick. I think it would be nice to have a table of Rubocop violation messages along with the rule that presents the message, to help pair the two.
That is it, simple and effective!