AllCops:
  Exclude:
    - 'bin/bundle'
    - 'bin/rails'
    - 'bin/rake'
    - 'db/schema.rb'
    - 'vendor/bundle/**/*'

Layout/ExtraSpacing:
  Enabled: false

Layout/SpaceInsideBlockBraces:
  SpaceBeforeBlockParameters: false

Layout/SpaceInsideHashLiteralBraces:
  EnforcedStyle: no_space

Naming/VariableName:
  EnforcedStyle: snake_case
  Enabled: true

Style/AsciiComments:
  Enabled: false

Style/AsciiComments:
  Enabled: false

Style/BlockDelimiters:
  EnforcedStyle: semantic

  FunctionalMethods:
    - let
    - let!
    - map
    - subject

Style/ClassAndModuleChildren:
  Exclude:
    - 'app/controllers/**/*' # `class Api::V1::UsersController...` のように書きたいことがあるし、他の理由でネストすることはあまりないのではないか。

Style/Documentation:
  Enabled: false

Style/EmptyCaseCondition:
  Enabled: false

Style/FormatStringToken:
  Enabled: false

Style/Lambda:
  Enabled: false

Style/PercentLiteralDelimiters:
  PreferredDelimiters:
    default: '()'
    '%i': '()'
    '%I': '()'
    '%r': '||'
    '%w': '()'
    '%W': '()'

Metrics/AbcSize:
  Exclude:
    - 'db/migrate/**/*'

Metrics/ClassLength:
  Exclude:
    - 'db/migrate/**/*'

Metrics/LineLength:
  Max: 125

Metrics/MethodLength:
  Exclude:
    - 'db/migrate/**/*'