# Defaults can be found here: https://github.com/bbatsov/rubocop/blob/master/config/default.yml

# If you don't like these settings, just delete this file :)

AllCops:
  Exclude:
    - 'vendor/**/*'
    - 'spec/fixtures/**/*'
    - 'tmp/**/*'
  TargetRubyVersion: 2.3

Style/StringLiterals:
  EnforcedStyle: double_quotes
  Enabled: true

# kind_of? is a good way to check a type
Style/ClassCheck:
  EnforcedStyle: kind_of?

# It's better to be more explicit about the type
Style/BracesAroundHashParameters:
  Enabled: false

# specs sometimes have useless assignments, which is fine
Lint/UselessAssignment:
  Exclude:
    - '**/spec/**/*'

Layout/AccessModifierIndentation:
  Enabled: true

Layout/AlignHash:
  EnforcedHashRocketStyle:
    - key
    - table
  EnforcedColonStyle:
    - key
    - table

# HoundCI doesn't like this rule
Layout/DotPosition:
  Enabled: false

Layout/EmptyLineAfterMagicComment:
  Enabled: true

# We allow !! as it's an easy way to convert ot boolean
Style/DoubleNegation:
  Enabled: false

# Cop supports --auto-correct.
Lint/UnusedBlockArgument:
  Enabled: false

# We want to allow class Fastlane::Class
Style/ClassAndModuleChildren:
  Enabled: false

Metrics/AbcSize:
  Max: 60

# The %w might be confusing for new users
Style/WordArray:
  MinSize: 19

# raise and fail are both okay
Style/SignalException:
  Enabled: false

# Better too much 'return' than one missing
Style/RedundantReturn:
  Enabled: false

# Having if in the same line might not always be good
Style/IfUnlessModifier:
  Enabled: false

# and and or is okay
Style/AndOr:
  Enabled: false

# Configuration parameters: CountComments.
Metrics/ClassLength:
  Max: 350

Metrics/CyclomaticComplexity:
  Max: 17

# Configuration parameters: AllowURI, URISchemes.
Metrics/LineLength:
  Max: 370

# Configuration parameters: CountKeywordArgs.
Metrics/ParameterLists:
  Max: 10

Metrics/PerceivedComplexity:
  Max: 18

# Sometimes it's easier to read without guards
Style/GuardClause:
  Enabled: false

# something = if something_else
# that's confusing
Style/ConditionalAssignment:
  Enabled: false

# Better to have too much self than missing a self
Style/RedundantSelf:
  Enabled: false

Metrics/MethodLength:
  Max: 60

# We're not there yet
Style/Documentation:
  Enabled: false

# Adds complexity
Style/IfInsideElse:
  Enabled: false

# danger specific

Style/BlockComments:
  Enabled: false

Layout/MultilineMethodCallIndentation:
  EnforcedStyle: indented

# FIXME: 25
Metrics/BlockLength:
  Max: 345
  Exclude:
    - "**/*_spec.rb"

Style/MixinGrouping:
  Enabled: false

Naming/FileName:
  Enabled: false

Layout/IndentHeredoc:
  Enabled: false

Style/SpecialGlobalVars:
  Enabled: false

PercentLiteralDelimiters:
  PreferredDelimiters:
    "%":  ()
    "%i": ()
    "%q": ()
    "%Q": ()
    "%r": "{}"
    "%s": ()
    "%w": ()
    "%W": ()
    "%x": ()

Security/YAMLLoad:
  Enabled: false