.rubocop_rspec_base.yml
# This file was generated on 2020-04-03T18:53:22+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