rspec/rspec-mocks

View on GitHub
.rubocop_rspec_base.yml

Summary

Maintainability
Test Coverage
# This file was generated on 2020-04-03T18:53:23+03:00 from the rspec-dev repo.
# DO NOT modify it by hand as your changes will get lost the next time it is generated.

# This file contains defaults for RSpec projects. Individual projects
# can customize by inheriting this file and overriding particular settings.

AccessModifierIndentation:
  Enabled: false

# "Use alias_method instead of alias"
# We're fine with `alias`.
Alias:
  Enabled: false

AlignParameters:
  EnforcedStyle: with_first_parameter

# "Avoid the use of the case equality operator ==="
# We prefer using `Class#===` over `Object#is_a?` because `Class#===`
# is less likely to be monkey patched than `is_a?` on a user object.
CaseEquality:
  Enabled: false

# Warns when the class is excessively long.
ClassLength:
  Max: 100

CollectionMethods:
  PreferredMethods:
    reduce: 'inject'

# Over time we'd like to get this down, but this is what we're at now.
CyclomaticComplexity:
  Max: 10

# We use YARD to enforce documentation. It works better than rubocop's
# enforcement...rubocop complains about the places we re-open
# `RSpec::Expectations` and `RSpec::Matchers` w/o having doc commments.
Documentation:
  Enabled: false

# We still support 1.8.7 which requires trailing dots
DotPosition:
  EnforcedStyle: trailing

DoubleNegation:
  Enabled: false

# each_with_object is unavailable on 1.8.7 so we have to disable this one.
EachWithObject:
  Enabled: false

FormatString:
  EnforcedStyle: percent

# As long as we support ruby 1.8.7 we have to use hash rockets.
HashSyntax:
  EnforcedStyle: hash_rockets

# We can't use the new lambda syntax, since we still support 1.8.7.
Lambda:
  Enabled: false

# Over time we'd like to get this down, but this is what we're at now.
LineLength:
  Max: 100

# Over time we'd like to get this down, but this is what we're at now.
MethodLength:
  Max: 15

# Who cares what we call the argument for binary operator methods?
BinaryOperatorParameterName:
  Enabled: false

PercentLiteralDelimiters:
  PreferredDelimiters:
    '%':  ()      # double-quoted string
    '%i': '[]'    # array of symbols
    '%q': ()      # single-quoted string
    '%Q': ()      # double-quoted string
    '%r': '{}'    # regular expression pattern
    '%s': ()      # a symbol
    '%w': '[]'    # array of single-quoted strings
    '%W': '[]'    # array of double-quoted strings
    '%x': ()      # a shell command as a string

# We have too many special cases where we allow generator methods or prefer a
# prefixed predicate due to it's improved readability.
PredicateName:
  Enabled: false

# On 1.8 `proc` is `lambda`, so we use `Proc.new` to ensure we get real procs on all supported versions.
# http://batsov.com/articles/2014/02/04/the-elements-of-style-in-ruby-number-12-proc-vs-proc-dot-new/
Proc:
  Enabled: false

# Exceptions should be rescued with `Support::AllExceptionsExceptOnesWeMustNotRescue`
RescueException:
  Enabled: true

# We haven't adopted the `fail` to signal exceptions vs `raise` for re-raises convention.
SignalException:
  Enabled: false

# We've tended to use no space, so it's less of a change to stick with that.
SpaceAroundEqualsInParameterDefault:
  EnforcedStyle: no_space

# We don't care about single vs double qoutes.
StringLiterals:
  Enabled: false

# This rule favors constant names from the English standard library which we don't load.
Style/SpecialGlobalVars:
  Enabled: false

Style/TrailingCommaInLiteral:
  Enabled: false

Style/TrailingCommaInArguments:
  Enabled: false

TrivialAccessors:
  AllowDSLWriters: true
  AllowPredicates: true
  ExactNameMatch: true

Style/ParallelAssignment:
  Enabled: false

Layout/EmptyLineBetweenDefs:
  Enabled: false

Layout/FirstParameterIndentation:
  Enabled: false

Naming/ConstantName:
  Enabled: false

Style/ClassCheck:
  Enabled: false

Style/ConditionalAssignment:
  Enabled: false

Style/EmptyMethod:
  Enabled: false

Style/FormatStringToken:
  Enabled: false

Style/GuardClause:
  Enabled: false

Style/IdenticalConditionalBranches:
  Enabled: false

Style/IfUnlessModifier:
  Enabled: false

Style/IfUnlessModifierOfIfUnless:
  Enabled: false

Style/MethodMissing:
  Enabled: false

Style/MixinUsage:
  Enabled: false

Style/MultipleComparison:
  Enabled: false

Style/MutableConstant:
  Enabled: false

Style/NestedModifier:
  Enabled: false

Style/NestedParenthesizedCalls:
  Enabled: false

Style/NumericPredicate:
  Enabled: false

Style/RedundantParentheses:
  Enabled: false

Style/StringLiteralsInInterpolation:
  Enabled: false

Style/SymbolArray:
  Enabled: false

Style/SymbolProc:
  Enabled: false

Style/YodaCondition:
  Enabled: false

Style/ZeroLengthPredicate:
  Enabled: false

Layout/ClosingParenthesisIndentation:
  Enabled: false

Layout/ExtraSpacing:
  Enabled: false

Layout/MultilineMethodCallBraceLayout:
  Enabled: false

Layout/MultilineMethodCallIndentation:
  Enabled: false

Layout/MultilineOperationIndentation:
  Enabled: false

Layout/SpaceAroundBlockParameters:
  Enabled: false

Layout/SpaceAroundOperators:
  Enabled: false

Layout/SpaceBeforeComma:
  Enabled: false

Style/BlockDelimiters:
  Enabled: false

Style/EmptyCaseCondition:
  Enabled: false

Style/MultilineIfModifier:
  Enabled: false

Style/RescueStandardError:
  Enabled: false

Style/StderrPuts:
  Enabled: false

Style/TernaryParentheses:
  Enabled: false

# This could likely be enabled, but it had a false positive on rspec-mocks
# (suggested change was not behaviour preserving) so I don't trust it.
Performance/HashEachMethods:
  Enabled: false

Naming/HeredocDelimiterNaming:
  Enabled: false

Layout/EmptyLineAfterMagicComment:
  Enabled: false

Layout/IndentArray:
  Enabled: false

Layout/IndentAssignment:
  Enabled: false

Layout/IndentHeredoc:
  Enabled: false

Layout/SpaceInsidePercentLiteralDelimiters:
  Enabled: false

Style/EmptyElse:
  Enabled: false

Style/IfInsideElse:
  Enabled: false

Style/RedundantReturn:
  Enabled: false

Style/StructInheritance:
  Enabled: false

Naming/VariableNumber:
  Enabled: false

Layout/SpaceInsideStringInterpolation:
  Enabled: false

Style/DateTime:
  Enabled: false

Style/ParenthesesAroundCondition:
  Enabled: false

Layout/EmptyLinesAroundBlockBody:
  Enabled: false

Lint/ImplicitStringConcatenation:
  Enabled: false

Lint/NestedMethodDefinition:
  Enabled: false

Style/RegexpLiteral:
  Enabled: false

Style/TrailingUnderscoreVariable:
  Enabled: false

Layout/EmptyLinesAroundAccessModifier:
  Enabled: false