AllCops:
  TargetRubyVersion: 2.5
  NewCops: enable

Metrics/ClassLength:
  Exclude:
    - test/*

Metrics/MethodLength:
  Exclude:
    - test/*

Metrics/BlockLength:
  AllowedMethods:
    - route
    - "on"
  Exclude:
    - test/*

Metrics/AbcSize:
  Exclude:
    - test/*

Naming/MethodParameterName:
  AllowNamesEndingInNumbers: false
  AllowedNames:
    - m
    - e
    - r
    - q
    - s
    - k
    - v
    - ex
    - tx
    - id
    - iq
    - ip
    - db

Layout/CaseIndentation:
  EnforcedStyle: end

Layout/IndentationStyle:
  Enabled: false
  EnforcedStyle: tabs
  IndentationWidth: 4

Layout/IndentationWidth:
  Width: 1 # one tab

Layout/LineLength:
  Max: 80
  Exclude:
    - Gemfile

Layout/SpaceAroundEqualsInParameterDefault:
  EnforcedStyle: no_space

Layout/AccessModifierIndentation:
  EnforcedStyle: outdent

Layout/FirstParameterIndentation:
  EnforcedStyle: consistent

Style/AccessModifierDeclarations:
  Enabled: false

Style/StringLiterals:
  EnforcedStyle: double_quotes

Style/NumericLiterals:
  Enabled: false

Style/SymbolArray:
  EnforcedStyle: brackets

Style/WordArray:
  EnforcedStyle: brackets

Style/Documentation:
  Enabled: false

Style/DoubleNegation:
  EnforcedStyle: allowed_in_returns
  Enabled: false

Style/PerlBackrefs:
  Enabled: false

Style/SpecialGlobalVars:
  EnforcedStyle: use_perl_names

Style/RegexpLiteral:
  EnforcedStyle: slashes
  AllowInnerSlashes: true

Layout/EndAlignment:
  EnforcedStyleAlignWith: variable

Lint/OutOfRangeRegexpRef:
  Enabled: false

Lint/MissingSuper:
  Enabled: false

Style/BlockDelimiters:
  EnforcedStyle: semantic
  AllowBracesOnProceduralOneLiners: true
  ProceduralMethods:
    - execute_command

Style/MultilineBlockChain:
  Enabled: false

Layout/FirstArgumentIndentation:
  EnforcedStyle: consistent

Layout/FirstArrayElementIndentation:
  EnforcedStyle: consistent

Style/FormatString:
  EnforcedStyle: percent

Style/FormatStringToken:
  EnforcedStyle: unannotated

Style/FrozenStringLiteralComment:
  Exclude:
    - forms/*

Naming/AccessorMethodName:
  Enabled: false
