require:
- rubocop-rake
- rubocop-rspec

AllCops:
  TargetRubyVersion: '3.0'
  NewCops: enable

Gemspec/DevelopmentDependencies:
  EnforcedStyle: gemspec

Gemspec/RequireMFA:
  Enabled: false

Layout/EmptyLineAfterGuardClause:
  Enabled: false

# allows nicer usage of private_class_method
Layout/EmptyLinesAroundArguments:
  Enabled: false

Layout/HashAlignment:
  Enabled: false

Layout/LeadingEmptyLines:
  Enabled: false

Layout/LineLength:
  Max: 200

Layout/SpaceInsideHashLiteralBraces:
  Enabled: false

Metrics/AbcSize:
  Enabled: false

Metrics/BlockLength:
  Enabled: false

Metrics/ClassLength:
  Enabled: false

Metrics/CyclomaticComplexity:
  Enabled: false

Metrics/MethodLength:
  Enabled: false

Metrics/PerceivedComplexity:
  Enabled: false

Naming/MethodParameterName:
  Enabled: false

Naming/MemoizedInstanceVariableName:
  Enabled: false

Style/ConditionalAssignment:
  Enabled: false

Style/Documentation:
  Enabled: false

Style/FormatStringToken:
  Enabled: false

Style/GuardClause:
  Enabled: false

Style/HashEachMethods:
  Enabled: true

Style/HashTransformKeys:
  Enabled: true

Style/HashTransformValues:
  Enabled: true

Style/IdenticalConditionalBranches:
  Enabled: false

Style/IfUnlessModifier:
  Enabled: false

Style/InverseMethods:
  Enabled: false

Style/NegatedIf:
  Enabled: false

Style/RescueModifier:
  Enabled: false

Style/SymbolArray:
  Enabled: false

Style/TrailingCommaInArrayLiteral:
  Enabled: false

RSpec/ExampleLength:
  Max: 20

RSpec/MultipleExpectations:
  Max: 20