radiorabe/raar

View on GitHub
.rubocop.yml

Summary

Maintainability
Test Coverage
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