My rubocop setup
Config in ./config
Installation
Add rubocop-rickselby to your Gemfile:
group :development, :test do
gem "rubocop-rickselby", "~> 0.14", require: false
endInherit the desired configuration in your .rubocop.yml:
# .rubocop.yml
inherit_gem:
rubocop-rickselby:
- config/default.yml # generic Ruby rules and cops
- config/capybara.yml # capybara-specific rules and cops
- config/factory_bot.yml # factory_bot-specific rules and cops
- config/rails.yml # Rails-specific rules and cops
- config/rspec.yml # RSpec-specific rules and cops
- config/rspec_rails.yml # RSpec-specific rules and cops for rails
- config/sequel.yml # sequel-specific rules and copsYou can override cops in your own local .rubocop.yml file as required.
erb-lint
Config is also available for https://github.com/Shopify/erb-lint.
Add a local .erb-lint.yml file to your project:
---
exclude:
- 'node_modules/**/*'
- 'vendor/**/*'
inherit_gem:
rubocop-rickselby:
- config/erb-lint.ymlThe default file path is **/*.html{+*,}.erb - this can be changed with a glob setting in .erb-lint.yml, e.g.
---
glob: "**/*.erb"Releasing
- Run the Prepare release GitHub Actions workflow with the new
X.Y.Zversion. It creates a pull request that updates the version, lockfile, and promotes the Unreleased changelog entries; enter optional Markdown release notes if there are no Unreleased entries. - Merge that pull request, then in GitHub use Releases → Draft a new
release to create and publish the matching
vX.Y.Ztag onmain. - The tag-triggered release workflow verifies the metadata, runs the checks, and publishes the gem.
RubyGems trusted publishing must be configured once for the
rickselby/rubocop-rickselby repository and .github/workflows/release.yml.
The workflow uses the GitHub release environment; configure it with required
reviewers before the first release.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/rickselby/rubocop-rickselby.
License
The gem is available as open source under the terms of the MIT License.