inherit_from: .rubocop_todo.yml

AllCops:
  TargetRubyVersion: 2.2 # closest to required_ruby_version of '>= 1.9'

# Even the reference in the documentation suggests that you should prefer
# `alias_method` vs `alias`, so I don't understand why that isn't the default.
Style/Alias:
  EnforcedStyle: prefer_alias_method

Style/Documentation:
  Enabled: false

# Enumerable#each_with_object only available since Ruby v1.9
Style/EachWithObject:
  Enabled: false

# Kernel#__dir__ has only been available since Ruby v2.0
Style/ExpandPathArguments:
  Enabled: false

# Kernel#format has only supported named references since Ruby v1.9
Style/FormatStringToken:
  EnforcedStyle: unannotated

# ruby19 style has only been supported since Ruby v1.9
Style/HashSyntax:
  EnforcedStyle: hash_rockets

# I'm not keen on this cop, because it's easy to miss the conditional
# I think the results are particularly unhelpful when Metrics/LineLength is big
Style/IfUnlessModifier:
  Enabled: false

# Lambda literal syntax has only been supported since Ruby v2.0
Style/Lambda:
  EnforcedStyle: lambda

# Symbol array literal syntax has only been supported since Ruby v2.0
Style/SymbolArray:
  Enabled: false

# I'm not keen on this cop, because it's easy to miss the while/until
Style/WhileUntilModifier:
  Enabled: false

# This recently introduced cop seems to have stirred up some controversy
Style/AccessModifierDeclarations:
  Enabled: false

# Enabling this cop results in an "Infinite loop detected" exception
Layout/AccessModifierIndentation:
  Enabled: false

# Allow long comment lines, e.g. YARD documentation
Metrics/LineLength:
  IgnoredPatterns: ['\A\s*#']

# It's not possible to set TargetRubyVersion to Ruby < v2.2
Gemspec/RequiredRubyVersion:
  Enabled: false
