Skip to content

Updates from rspec-dev (2020-09-27) #2390

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

Closed
Closed
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
309 changes: 309 additions & 0 deletions .rubocop_rspec_base.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,309 @@
# This file was generated on 2020-09-27T11:20:42+02: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
6 changes: 4 additions & 2 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# This file was generated on 2019-12-18T14:01:39+00:00 from the rspec-dev repo.
# This file was generated on 2020-09-27T11:20:42+02:00 from the rspec-dev repo.
# DO NOT modify it by hand as your changes will get lost the next time it is generated.

version: "{build}"
Expand Down Expand Up @@ -33,8 +33,10 @@ test_script:

environment:
matrix:
- ruby_version: 200
- ruby_version: 21
- ruby_version: 22
- ruby_version: 23-x64
- ruby_version: 24-x64
- ruby_version: 25-x64
- ruby_version: 26-x64
- ruby_version: 27-x64
7 changes: 5 additions & 2 deletions script/clone_all_rspec_repos
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# This file was generated on 2019-12-18T14:01:39+00:00 from the rspec-dev repo.
# This file was generated on 2020-09-27T11:20:42+02:00 from the rspec-dev repo.
# DO NOT modify it by hand as your changes will get lost the next time it is generated.

set -e
Expand All @@ -13,7 +13,10 @@ if is_mri; then
clone_repo "rspec-expectations"
clone_repo "rspec-mocks"
clone_repo "rspec-rails"
clone_repo "rspec-support"

if rspec_support_compatible; then
clone_repo "rspec-support"
fi

popd
else
Expand Down
Loading