AllCops:
  Exclude:
    - 'bin/**/*'
    - 'db/**/*'
    - 'config/**/*'
    - 'script/**/*'

Layout/ParameterAlignment:
  EnforcedStyle: with_fixed_indentation

Layout/CaseIndentation:
  EnforcedStyle: end

Layout/FirstHashElementIndentation:
  Enabled: false

Layout/MultilineMethodCallIndentation:
  EnforcedStyle: indented

Layout/MultilineOperationIndentation:
  EnforcedStyle: indented

Layout/SpaceInsideHashLiteralBraces:
  Enabled: false

Layout/HashAlignment:
  Enabled: true
  EnforcedLastArgumentHashStyle: always_ignore
  
Layout/EndAlignment:
  EnforcedStyleAlignWith: variable

Style/AsciiComments:
  Enabled: false

Style/CollectionMethods:
  Enabled: true
  PreferredMethods:
      inject: 'inject'

Style/Documentation:
  Enabled: false

Style/BlockDelimiters:
  Exclude:
    - spec/**/*_spec.rb

Style/GuardClause:
  Enabled: false

Style/IfUnlessModifier:
  Enabled: false

Style/Lambda:
  Enabled: false

Style/RaiseArgs:
  Enabled: false

Style/SignalException:
  Enabled: false

Metrics/AbcSize:
  Max: 20

Metrics/ClassLength:
  Max: 200

Metrics/ModuleLength:
  Max: 200

Metrics/LineLength:
  Enabled: false

Metrics/MethodLength:
  Max: 30

Style/SingleLineBlockParams:
  Enabled: false

Style/FormatString:
  Enabled: false

Style/WordArray:
  Enabled: false

Style/RedundantSelf:
  Enabled: false

Style/TrivialAccessors:
  AllowPredicates: true

Lint/RedundantReturn:
  Description: 'Do not use return in an ensure block.'
  StyleGuide: '#no-return-ensure'
  Enabled: true
  VersionAdded: '0.9'
