inherit_from: .rubocop_todo.yml

AllCops:
  TargetRubyVersion: 2.0

# Customized cops

Layout/CaseIndentation:
  IndentOneStep: true

Layout/DotPosition:
  EnforcedStyle: trailing

Layout/SpaceInLambdaLiteral:
  EnforcedStyle: require_space

Naming/PredicateName:
  NamePrefixBlacklist:
    - is_
  Exclude:
    - 'spec/**/*'

Style/Alias:
  EnforcedStyle: prefer_alias_method

Style/BarePercentLiterals:
  EnforcedStyle: percent_q

Style/BlockDelimiters:
  EnforcedStyle: line_count_based

Style/FormatString:
  EnforcedStyle: percent

Style/NumericLiterals:
  MinDigits: 15

Style/PercentLiteralDelimiters:
  PreferredDelimiters:
    default: ()
    '%i': '()'
    '%I': '()'
    '%r': '()'
    '%w': '()'
    '%W': '()'

Style/RedundantReturn:
  AllowMultipleReturnValues: true

Style/RegexpLiteral:
  EnforcedStyle: mixed

Style/SignalException:
  EnforcedStyle: only_raise

Style/StabbyLambdaParentheses:
  EnforcedStyle: require_no_parentheses

# Disabled cops

Layout/AlignArray:
  Enabled: false
Layout/AlignHash:
  Enabled: false
Layout/AlignParameters:
  Enabled: false
Layout/EmptyLinesAroundBlockBody:
  Enabled: false
Layout/EmptyLinesAroundClassBody:
  Enabled: false
Layout/EmptyLinesAroundMethodBody:
  Enabled: false
Layout/EmptyLinesAroundModuleBody:
  Enabled: false
Layout/MultilineMethodCallBraceLayout:
  Enabled: false
Layout/MultilineMethodCallIndentation:
  Enabled: false
Layout/MultilineOperationIndentation:
  Enabled: false
Layout/SpaceAfterNot:
  Enabled: false

Lint/AmbiguousBlockAssociation:
  Enabled: false

# These cops want parentheses that really aren't necessary
Lint/AmbiguousOperator:
  Enabled: false
Lint/AmbiguousRegexpLiteral:
  Enabled: false

# Gives false positives for Cucumber steps that aren't used
Lint/Debugger:
  Enabled: false

# What else am I supposed to call the block variable when using find or each_with_object?
Lint/ShadowingOuterLocalVariable:
  Enabled: false

# Objects to a usage needed to implement OAuth signing
Lint/UriEscapeUnescape:
  Enabled: false

Metrics/AbcSize:
  Enabled: false
Metrics/BlockLength:
  Enabled: false
Metrics/ClassLength:
  Enabled: false
Metrics/CyclomaticComplexity:
  Enabled: false
Metrics/LineLength:
  Enabled: false
Metrics/MethodLength:
  Enabled: false
Metrics/ModuleLength:
  Enabled: false
Metrics/ParameterLists:
  Enabled: false
Metrics/PerceivedComplexity:
  Enabled: false

Performance/RedundantMerge:
  Enabled: false

Style/AsciiComments:
  Enabled: false
Style/BracesAroundHashParameters:
  Enabled: false
Style/ClassAndModuleChildren:
  Enabled: false
Style/CommentAnnotation:
  Enabled: false
Style/Documentation:
  Enabled: false
Style/FormatStringToken:
  Enabled: false
Style/FrozenStringLiteralComment:
  Enabled: false
Style/GuardClause:
  Enabled: false
Style/IfUnlessModifier:
  Enabled: false
Style/MethodMissing:
  Enabled: false
Style/MixinGrouping:
  Enabled: false
Style/MultilineBlockChain:
  Enabled: false
Style/MultilineTernaryOperator:
  Enabled: false
Style/NegatedIf:
  Enabled: false
Style/NestedParenthesizedCalls:
  Enabled: false
Style/Next:
  Enabled: false
Style/NumericPredicate:
  Enabled: false
Style/RaiseArgs:
  Enabled: false
Style/RedundantBegin:
  Enabled: false
# Gives false positive on Cucumber step definitions
Style/RegexpLiteral:
  Enabled: false
Style/StringLiterals:
  Enabled: false
Style/StringLiteralsInInterpolation:
  Enabled: false
Style/StructInheritance:
  Enabled: false
Style/TernaryParentheses:
  Enabled: false
Style/UnneededPercentQ:
  Enabled: false
Style/WordArray:
  Enabled: false