AllCops:
  DisplayCopNames: true
  TargetRubyVersion: 2.4

## Metrics #####################################################################

Metrics/BlockLength:
  Exclude:
    - "Guardfile"
    - "spec/**/*"

Metrics/MethodLength:
  CountComments: false
  Max: 15

## Styles ######################################################################

Style/AlignParameters:
  EnforcedStyle: with_fixed_indentation

Style/BracesAroundHashParameters:
  Enabled: false

Style/EmptyLineBetweenDefs:
  AllowAdjacentOneLineDefs: true

Style/Encoding:
  EnforcedStyle: when_needed

Style/HashSyntax:
  EnforcedStyle: hash_rockets

Style/IndentHash:
  EnforcedStyle: consistent

Style/IndentArray:
  EnforcedStyle: consistent

# New lambda syntax is as ugly to me as new syntax of Hash.
Style/Lambda:
  Enabled: false

Style/MultilineOperationIndentation:
  EnforcedStyle: indented

Style/StringLiterals:
  EnforcedStyle: double_quotes

Style/EmptyCaseCondition:
  Enabled: false

# Not all trivial readers/writers can be defined with attr_* methods
#
#   class Example < SimpleDelegator
#     def __getobj__
#       @obj
#     end
#
#     def __setobj__(obj)
#       @obj = obj
#     end
#   end
Style/TrivialAccessors:
  Enabled: false
