inherit_from: .rubocop_todo.yml

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

# 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

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

# 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

# `Module#===` is useful in presence of objects such as mocks
# that may have a `is_a?` implementation that lies.
Style/CaseEquality:
  Enabled: false

# This is useful when using `ExecutionPoint.current` to make tests more robust
Style/Semicolon:
  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
