# Customizations/Deviations from Standard/Shopify for Ruby Coding Standards # We want Exclude directives from different # config files to get merged, not overwritten inherit_mode: merge: - Exclude - Include require: # Loads the Standard Ruby suite of gems, and configures for rubocop-lts: - standard-rubocop-lts # The goal here is convention over configuration... # In light of that, we are well past having convened on Markdown for README docs and such. - rubocop-md # Rubygems have Rakefile as a convention, and if they don't, why not? - rubocop-rake # In the vast majority of cases, we will want to be warned about thread unsafe code. # In those cases where we intentionally have thread unsafe code, # a rubocop:disable is the least of our concerns. :D - rubocop-thread_safety # RuboCop Gradual can be used in "Require mode", which is a way to replace rubocop with rubocop-gradual: - rubocop/gradual/patch # Rules are overridden in a LIFO stack. # If rubocop-shopify is loaded first, and standard-rubocop-lts after it, # then rubocop-shopify's rules will take precedence. # This is the opposite of what you might expect. # Below: rubocop-shopify rules will override standard-rubocop-lts's (i.e. standard's) rules. inherit_gem: rubocop-shopify: rubocop.yml standard-rubocop-lts: config/ruby-3.1.yml inherit_from: - strict/ruby.yml AllCops: # When the Ruby community, via RuboCop, adopts a new standard # (with additional filtering by standard.rb and rubocop-shopify) it is good enough for us! NewCops: enable # Metrics cops are disabled in Standard by default Metrics: Enabled: true # Ruby specific customizations Layout/LineLength: Max: 120