.rubocop.yml
# Allow one line around block body (Layout/EmptyLines will still disallow two or more)
Layout/EmptyLinesAroundBlockBody:
Enabled: false
# Allow one line around class body (Layout/EmptyLines will still disallow two or more)
Layout/EmptyLinesAroundClassBody:
Enabled: false
# Allow one line around module body (Layout/EmptyLines will still disallow two or more)
Layout/EmptyLinesAroundModuleBody:
Enabled: false
# Reasonable line-length check; it's too easy for the cure to be worse than the disease
Layout/LineLength:
Max: 150
# Make indents consistent regardless of the lengths of variables and method names and whatnot
Layout/MultilineMethodCallIndentation:
EnforcedStyle: indented
# Produces monsters
Layout/MultilineOperationIndentation:
Enabled: false
# Confusing and weird
Naming/VariableNumber:
Enabled: False
# We meant to do that
Naming/MemoizedInstanceVariableName:
Enabled: False
# It works in context, trust us
Naming/MethodParameterName:
Enabled: False
# Do what's readable in the context you're in
Style/AccessModifierDeclarations:
Enabled: false
# 👎 to cultural imperialism
Style/AsciiComments:
Enabled: false
# Seriously?
Style/CommentedKeyword:
Enabled: False
# Disable problematic module documentation check (see https://github.com/bbatsov/rubocop/issues/947)
Style/Documentation:
Enabled: false
# Adding more line noise to format strings will not improve them
Style/FormatStringToken:
Enabled: false
# Putting '# frozen_string_literal: true' everywhere does not make the world a better place
Style/FrozenStringLiteralComment:
Enabled: false
# `foo.positive?` is cute, but it's not actually more readable than `foo > 0`
Style/NumericPredicate:
Enabled: false
# The semantics of `foo&.bar` are a lot less interchangeable with `foo && foo.bar` than RuboCop thinks
Style/SafeNavigation:
Enabled: false
# Requiring the lambda() method just makes wordy calls wordier
Style/Lambda:
EnforcedStyle: literal
# Unclear why it's a good idea to give parameters semantically meaningless names
Style/SingleLineBlockParams:
Enabled: false
############################################################
# Added in RuboCop 0.80
Style/HashEachMethods:
Enabled: true
Style/HashTransformKeys:
Enabled: true
Style/HashTransformValues:
Enabled: true
############################################################
# Added in RuboCop 0.81
Lint/StructNewOverride:
Enabled: true
Lint/RaiseException:
Enabled: true
############################################################
# Added in RuboCop 0.82
Layout/SpaceAroundMethodCallOperator:
Enabled: true
Style/ExponentialNotation:
Enabled: false
############################################################
# Added in RuboCop 0.83
Layout/EmptyLinesAroundAttributeAccessor:
Enabled: true
Style/SlicingWithRange:
Enabled: true
############################################################
# Added in RuboCop 0.84
Lint/DeprecatedOpenSSLConstant:
Enabled: true
############################################################
# Added in RuboCop 0.85
Lint/MixedRegexpCaptureTypes:
Enabled: true
Style/RedundantRegexpEscape:
Enabled: true
Style/RedundantRegexpCharacterClass:
Enabled: true
############################################################
# Added in Rubocop 0.86
Style/RedundantFetchBlock:
Enabled: true
############################################################
# Added in Rubocop 0.87
# Sometimes we separate things for a reason
Style/AccessorGrouping:
Enabled: false
Style/BisectedAttrAccessor:
Enabled: true
Style/RedundantAssignment:
Enabled: true
############################################################
# Added in Rubocop 0.88
Lint/DuplicateElsifCondition:
Enabled: true
Style/ArrayCoercion:
Enabled: true
Style/CaseLikeIf:
Enabled: true
Style/HashAsLastArrayItem:
Enabled: true
Style/HashLikeCase:
Enabled: true
Style/RedundantFileExtensionInRequire:
Enabled: true
############################################################
# Added in Rubocop 0.89
Lint/BinaryOperatorWithIdenticalOperands:
Enabled: true
Lint/DuplicateRescueException:
Enabled: true
Lint/EmptyConditionalBody:
Enabled: true
Lint/FloatComparison:
Enabled: true
Lint/MissingSuper:
Enabled: true
Lint/OutOfRangeRegexpRef:
Enabled: true
Lint/SelfAssignment:
Enabled: true
Lint/TopLevelReturnWithArgument:
Enabled: true
Lint/UnreachableLoop:
Enabled: true
Style/ExplicitBlockArgument:
Enabled: true
Style/GlobalStdStream:
Enabled: true
Style/OptionalBooleanParameter:
Enabled: true
Style/SingleArgumentDig:
Enabled: true
Style/SoleNestedConditional:
Enabled: true
Style/StringConcatenation:
Enabled: true
############################################################
# Added in Rubocop 0.90
Lint/DuplicateRequire:
Enabled: true
Lint/EmptyFile:
Enabled: true
Lint/TrailingCommaInAttributeDeclaration:
Enabled: true
Lint/UselessMethodDefinition:
Enabled: true
Style/CombinableLoops:
Enabled: true
Style/KeywordParametersOrder:
Enabled: true
Style/RedundantSelfAssignment:
Enabled: true
############################################################
# Added in Rubocop 0.91
Layout/BeginEndAlignment:
Enabled: true
Lint/ConstantDefinitionInBlock:
Enabled: true
Lint/IdentityComparison:
Enabled: true
Lint/UselessTimes:
Enabled: true