AllCops:
  DisplayCopNames: true
  Exclude:
  - "finapps.gemspec"
  UseCache: false

# Commonly used screens these days easily fit more than 80 characters.
Metrics/LineLength:
  Max: 120

# Re-enable this when the following is resolved:
# https://github.com/rubocop-hq/rubocop/issues/5953
Style/AccessModifierDeclarations:
  Enabled: false

Style/CollectionMethods:
  Description: Preferred collection methods.
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#map-find-select-reduce-size
  Enabled: true
  PreferredMethods:
    collect: map
    collect!: map!
    find: detect
    find_all: select
    reduce: inject
Style/OptionHash:
  Description: Don't use option hashes when you can use keyword arguments.
  Enabled: false
Naming/PredicateName:
  Description: Check the names of predicate methods.
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark
  Enabled: true
  NamePrefix:
  - is_
  - has_
  - have_
  NamePrefixBlacklist:
  - is_
  Exclude:
  - spec/**/*
Metrics/AbcSize:
  Description: A calculated magnitude based on number of assignments, branches, and
    conditions.
  Enabled: false
  Max: 15
Metrics/BlockLength:
  ExcludedMethods: ['describe', 'context']
Metrics/ClassLength:
  Description: Avoid classes longer than 100 lines of code.
  Enabled: false
  CountComments: false
  Max: 100
Metrics/ModuleLength:
  CountComments: false
  Max: 100
  Description: Avoid modules longer than 100 lines of code.
  Enabled: false
Metrics/CyclomaticComplexity:
  Description: A complexity metric that is strongly correlated to the number of test
    cases needed to validate a method.
  Enabled: false
  Max: 6
Metrics/MethodLength:
  Description: Avoid methods longer than 10 lines of code.
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#short-methods
  Enabled: false
  CountComments: false
  Max: 10
Metrics/ParameterLists:
  Description: Avoid parameter lists longer than three or four parameters.
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#too-many-params
  Enabled: false
  Max: 5
  CountKeywordArgs: true
Metrics/PerceivedComplexity:
  Description: A complexity metric geared towards measuring complexity for a human
    reader.
  Enabled: false
  Max: 7
Style/Documentation:
  Description: Document classes and non-namespace modules.
  Enabled: false
Style/EmptyLiteral:
  Description: Prefer literals to Array.new/Hash.new/String.new.
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#literal-array-hash
  Enabled: false
Style/VariableInterpolation:
  Description: Don't interpolate global, instance and class variables directly in
    strings.
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#curlies-interpolate
  Enabled: false
Lint/HandleExceptions:
  Description: Don't suppress exception.
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions
  Enabled: false