.rubocop.yml

Summary

Maintainability
Test Coverage
inherit_from: .rubocop_todo.yml

require:
  - rubocop-rails
  - rubocop-rspec

## Layout

Layout/LineLength:
  Max: 144


## Style

# Do not report errors on missing documentation.
Style/Documentation:
  Enabled: false

Style/HashSyntax:
  Enabled: true
  EnforcedStyle: ruby19
  SupportedStyles:
    - ruby19
    - hash_rockets
  EnforcedShorthandSyntax: either

Style/NumericLiterals:
  Enabled: true
  MinDigits: 5

Style/RedundantSelf:
  Enabled: false

# Use double-quotes instead of single-quotes
# Double quotes allow for string interpolation, so we enforce
# double quotes for consistency.
Style/StringLiterals:
  EnforcedStyle: double_quotes

Style/SymbolArray:
  Enabled: false

Style/TrailingCommaInHashLiteral:
  Enabled: false


## Metrics

Metrics/AbcSize:
  Enabled: false

# Do not complain about blocks that are too long.
Metrics/BlockLength:
  Enabled: false

Metrics/CyclomaticComplexity:
  Enabled: false

Metrics/MethodLength:
  Enabled: false

Metrics/PerceivedComplexity:
  Enabled: false


## Rspec

# We decide how many lines.
RSpec/ExampleLength:
  Enabled: false

# We decide how many expectations.
RSpec/MultipleExpectations:
  Enabled: false

RSpec/MultipleMemoizedHelpers:
  Enabled: false

RSpec/NestedGroups:
  Description: Checks for nested example groups.
  Enabled: false

# Allow using "use_test!" from RSwag
RSpec/EmptyExampleGroup:
  Enabled: false

## Rails

Rails/I18nLocaleTexts:
  Enabled: false

Rails/SaveBang:
  Enabled: true

## Miscellaneous

AllCops:
  NewCops: enable
  Exclude:
    - "db/schema.rb"
    - "config/**/*"
    - "bin/**/*"
    - "db/**/*"
    - "spec/rails_helper.rb"
    - "spec/spec_helper.rb"
    - "spec/swagger_helper.rb"
    - "vendor/**/*"