New features
- #13474: Add new
Style/ItAssignment
cop to detect local assignments toit
inside blocks. (@dvandersluis) - #11013: Add new
Lint/SharedMutableDefault
cop to alert on mutable Hash defaults. (@corsonknowles) - #13612: Create new cop
Lint/ConstantReassignment
. (@lovro-bikic) - #13628: Make LSP server support quick fix code action. (@koic)
- #13607: Support passing the target ruby version through an environment variable. (@elliottt)
- #13628: Add support for Ruby LSP as a built-in add-on. (@koic)
- #13284: Add new
target_gem_version
API to change behavior of a cop at runtime depending on which gem version is present. (@earlopain)
Bug fixes
- #13589: Fix
Lint/NonAtomicFileOperation
to detect offenses with fully qualified constants. (@viralpraxis) - #13630: Fix CLI
--format
option to accept fully qualified formatter class names. (@viralpraxis) - #13624: Don't show warnings from
Lint/Syntax
when a syntax error occurs. (@earlopain) - #13605: Fix
RuboCop::Cop::Util.to_string_literal
to work correctly with frozen strings. (@viralpraxis) - #12393: Fix false negatives for
Lint/Void
inside of non-modifier conditionals. (@GabeIsman) - #13623: Fix false negatives for
Style/MultipleComparison
when settingAllowMethodComparison: false
and comparing with simple method calls. (@koic) - #13644: Fix a false positive for
Layout/EmptyLinesAroundAccessModifier
when an access modifier and an expression are on the same line. (@koic) - #13645: Fix a false positive for
Style/MethodCallWithArgsParentheses
when settingEnforcedStyle: omit_parentheses
and last argument is an endless range. (@earlopain) - #13614: Fix false positives for
Style/RaiseArgs
with anonymous splat and triple dot forwarding. (@earlopain) - #13591: Fix false positives for
Lint/NestedMethodDefinition
when defining a method on a constant or a method call. (@koic) - #13594: Fix false positives for
Style/MultipleComparison
when using multiple safe navigation method calls. (@koic) - #13654: Fix false positives for
Style/RedundantInitialize
when empty initialize method has arguments. (@marocchino) - #13608: Fix crash when running
rubocop -d
on a config with a remoteinherit_from
that causes a duplicate setting warning. (@dvandersluis) - #12430: Fix false negatives in
Style/RedundantLineContinuation
with multiple line continuations. (@dvandersluis) - #13638: Fix false positive for
Naming/BlockForwarding
when method just returns the block argument. (@mvz) - #13599: Fix incorrect autocorrect for
Layout/HashAlignment
when there is a multiline positional argument andLayout/ArgumentAlignment
is configured withEnforcedStyle: with_fixed_indentation
. (@dvandersluis) - #13586: Fix regression in
Layout/SpaceAroundOperators
when different comparison operators were aligned with each other. (@dvandersluis) - #13603: Fix
Lint/LiteralInInterpolation
cop error on invalid string literal. (@viralpraxis) - #13582: Fix
Lint/NonAtomicFileOperation
cop error on non-constant receiver. (@viralpraxis) - #13598: Fix
Lint/Void
cop error onif
without body. (@viralpraxis) - #13634: Fix
Style/ClassAndModuleChildren
cop error oncompact
enforced style and unindented body. (@viralpraxis) - #13642: Fix
Style/FloatDivision
cop error if#to_f
has implicit receiver. (@viralpraxis) - #13517: Fixes
Style/HashExcept
to recognize safe navigation whenActiveSupportExtensionsEnabled
config is enabled. (@lovro-bikic) - #13585: Fix
Style/HashSyntax
cop error on implicitcall
method. (@viralpraxis) - #13632: Fix
Style/MissingElse
cop error ifStyle/EmptyElse
'sEnforcedStyle
is notboth
andif
expression containselsif
. (@viralpraxis) - #13659: Fix
Style/MissingElse
cop error ifStyle/EmptyElse
'sEnforcedStyle
is notboth
andif
expression contains multipleelsif
. (@viralpraxis) - #13596: Fix
Style/RedundantCondition
cop error on parentheses and modifierif
inelse
. (@viralpraxis) - #13616: Fix incorrect autocorrect for
Style/RedundantRegexpArgument
when the regex contains a single quote. (@mrzasa) - #13619: Fix
Style/YodaExpression
cop error in case of suffix form of operator. (@viralpraxis) - #13578: Update
Layout/LineContinuationSpacing
to ignore continuations inside aregexp
orxstr
. (@dvandersluis) - #13601: Update
Style/SuperArguments
to handlesuper
with a block or with a chained method with a block. (@dvandersluis) - #13568: Fix
NoMethodError
inConfigValidator
when a Cop's config is not aHash
and raiseValidationError
instead. (@amomchilov)
Changes
- #13665: Add support for safe navigation to
Style/ObjectThen
. (@dvandersluis) - #13657: Add support for safe navigation to
Layout/HashAlignment
. (@dvandersluis) - #13656: Add support for safe navigation to
Layout/HeredocArgumentClosingParenthesis
. (@dvandersluis) - #13655: Add support for safe navigation to
Layout/LineLength
. (@dvandersluis) - #13662: Add support for safe navigation to
Style/SendWithLiteralMethodName
. (@dvandersluis) - #13557: Fix false positives for
Lint/NumericOperationWithConstantResult
. (@earlopain) - #13658: Fix invalid autocorrect for
Style/SlicingWithRange
when calling.[]
or&.[]
with a correctable range. (@dvandersluis) - #13548: Enhance
Lint/DuplicateSetElement
to detect offences withinSortedSet
. (@viralpraxis) - #13646: Update
Layout/TrailingWhitespace
to support blank characters other than space and tab. (@krororo) - #13652: Update
Metrics/MethodLength
to make use ofAllowedMethods
andAllowedPatterns
for methods defined dynamically withdefine_method
. (@dvandersluis) - #13606: Update
Style/AccessModifierDeclarations
to addAllowModifiersOnAliasMethod
configuration (defaulttrue
). (@dvandersluis) - #13662: Update
Style/RedundantSelfAssignment
to handle safe navigation on the right-hand side of the assignment. (@dvandersluis)