RuboCop Standard

This repository enables all of Shopify's recommended RuboCop configurations, plus some extra ones I've found useful for my projects, like:

Installation

Gemfile

gem "rubocop-standard"

.rubocop.yml

require:
  - rubocop-standard

How to configure

In your .rubocop.yml file, just write:

inherit_gem:
  rubocop-standard:
    - config/default.yml

By default, rubocop-performance and rubocop-rake rules are enforced, because it's assumed that every Ruby project cares about these two sets. Why? Well, everyone should care about performance, and every project uses Rake (and Bundler) as de facto tools.

This gem also has the following Rubocop tools as dependencies:

  • rubocop-minitest
  • rubocop-rails
  • rubocop-rails-accessibility
  • rubocop-sorbet

You can add those in for whichever project needs them:

inherit_gem:
  rubocop-standard:
    - config/default.yml
    - config/minitest.yml
    - config/rails.yml # includes rails-accessibility

Other features

This project also excludes directories that are ancillary to the core lib code:

AllCops:
  Exclude:
    - bin/**/*
    - db/**/*
    - node_modules/**/*
    - sorbet/**/*
    - tmp/**/*
    - vendor/**/*

Rails environments also includes staging:

Rails/UnknownEnv:
  Environments:
    - development
    - test
    - staging
    - production