.rubocop.yml
require:
- rubocop-rails
- rubocop-performance
AllCops:
DisplayCopNames: true
NewCops: enable
Exclude:
# only generated files
- db/schema.rb
- dist/**/*
- tmp/**/*
- vendor/**/*
Layout/ClassStructure:
Enabled: true
# namespace modules do not require empty lines, mixins do.
Layout/EmptyLinesAroundClassBody:
EnforcedStyle: empty_lines_except_namespace
Layout/EmptyLinesAroundModuleBody:
EnforcedStyle: empty_lines_except_namespace
Layout/LineContinuationLeadingSpace:
Enabled: false
Layout/LineLength:
Max: 100
# Long Blocks used for swagger documentation, otherwise handled by method length.
Metrics/BlockLength:
AllowedMethods:
- configure
- defaults
- draw
- swagger_path
- swagger_root
- json_api_swagger_schema
- namespace
- operation
- property
Metrics/ClassLength:
Max: 200
Metrics/MethodLength:
Max: 10
Style/ClassVars:
Enabled: false
Style/Documentation:
Enabled: false
Style/EmptyMethod:
EnforcedStyle: expanded
Style/FormatStringToken:
Enabled: false
Style/HashAsLastArrayItem:
EnforcedStyle: no_braces
Style/GuardClause:
MinBodyLength: 3
Style/HashSyntax:
Exclude:
- lib/tasks/*.rake
Style/SymbolArray:
EnforcedStyle: brackets
Rails/CreateTableWithTimestamps:
Enabled: false
Rails/Delegate:
Enabled: false
Rails/FilePath:
EnforcedStyle: arguments
# with dry_crud, this is a pattern
Rails/LexicallyScopedActionFilter:
Enabled: false
# not all
Rails/RakeEnvironment:
Enabled: false
# we should know about update_all constraints.
Rails/SkipsModelValidations:
Enabled: false
# disable for tuple uniqueness
Rails/UniqueValidationWithoutIndex:
Enabled: false