Skip to content

This updates Rubocop and uses the .rubocop_rspec_base.yml for consistency #2556

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 26, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
419 changes: 31 additions & 388 deletions .rubocop.yml

Large diffs are not rendered by default.

316 changes: 316 additions & 0 deletions .rubocop_rspec_base.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,316 @@
# This file was generated on 2022-01-10T22:24:10+00: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.

Layout/AccessModifierIndentation:
Enabled: false

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

# "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.
Style/CaseEquality:
Enabled: false

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

Style/CollectionMethods:
PreferredMethods:
reduce: 'inject'

# Over time we'd like to get this down, but this is what we're at now.
Metrics/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.
Style/Documentation:
Enabled: false

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

Style/DoubleNegation:
Enabled: false

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

Style/FormatString:
EnforcedStyle: percent

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

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

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

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

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

Style/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.
Naming/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/
Style/Proc:
Enabled: false

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

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

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

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

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

Style/TrailingCommaInArrayLiteral:
Enabled: false

Style/TrailingCommaInHashLiteral:
Enabled: false

Style/TrailingCommaInArguments:
Enabled: false

Style/TrivialAccessors:
AllowDSLWriters: true
AllowPredicates: true
ExactNameMatch: true

Style/ParallelAssignment:
Enabled: false

Layout/EmptyLineBetweenDefs:
Enabled: false

Layout/FirstParameterIndentation:
Enabled: false

Layout/ParameterAlignment:
EnforcedStyle: with_first_parameter

Layout/SpaceInsideBlockBraces:
Enabled: false

Layout/SpaceInsideParens:
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

Lint/MissingSuper:
Enabled: false

Style/MissingRespondToMissing:
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

Naming/HeredocDelimiterNaming:
Enabled: false

Layout/AssignmentIndentation:
Enabled: false

Layout/EmptyLineAfterMagicComment:
Enabled: false

Layout/FirstArrayElementIndentation:
Enabled: false

Layout/HeredocIndentation:
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
Loading