New features
- #14921: Add
mise.tomlas source for TargetRubyVersion. (@kitsane) - #14925: Add new
Lint/UnreachablePatternBranchcop. (@sferik) - #14942: Add new
Style/FileOpencop. (@sferik) - #14939: Add new
Style/MapJoincop. (@sferik) - #14924: Add new
Style/OneClassPerFilecop. (@sferik) - #14923: Add new
Style/PartitionInsteadOfDoubleSelectcop. (@sferik) - #14811: Add new
Style/PredicateWithKindcop. (@sferik) - #14938: Add new
Style/ReduceToHashcop. (@sferik) - #14812: Add new
Style/RedundantMinMaxBycop. (@sferik) - #13501: Add new
Style/RedundantStructKeywordInitcop. (@koic) - #14808: Add new
Style/SelectByKindcop. (@sferik) - #14810: Add new
Style/SelectByRangecop. (@sferik) - #14922: Add new
Style/TallyMethodcop. (@sferik) - #14773: Add new
Lint/DataDefineOverridecop. (@bbatsov) - #14781: Add new
InternalAffairs/ItblockHandlercop. (@bbatsov) - #14911: Support built-in MCP server (experimental). (@koic)
Bug fixes
- #14829: Allow classes without a superclass in
Style/EmptyClassDefinition. (@koic) - #14873: Fix an error in
Style/NegatedWhilewhen the last expression of anuntilcondition is negated. (@koic) - #14827: Improve
Style/EmptyClassDefinitionmessage wording. (@bbatsov) - #14800: Fix false obsolete configuration error for extracted cops when loaded as plugins. (@bbatsov)
- #14928: Fix a false positive for
Lint/Voidwhennilis used incasebranch. (@5hun-s) - #14857: Fix false positives in
Style/IfUnlessModifierwhen modifier forms are used inside string interpolations. (@koic) - #8773: Fix false positives in
Style/HashTransformKeysandStyle/HashTransformValues. (@sferik) - #6963: Fix false positives in
Lint/Voidforeachblocks where the return value may be meaningful (e.g.,Enumerator#each). (@sferik) - #14931: Ignore directive comments inside comments. (@koic)
- #14834: Fix
Layout/IndentationWidthfalse positive for chained method blocks whenEnforcedStyleAlignWithisstart_of_line. (@krororo) - #14756: Fix
Lint/Voidto detect void expressions incase/whenbranches. (@bbatsov) - #14874: Fix a
Parser::ClobberingErrorinLint/UselessAssignmentwhen autocorrecting a useless assignment that wraps a block containing another useless assignment. (@koic) - #14880: Fix a false negative in
Layout/MultilineAssignmentLayoutwhen usingnumblockoritblockwithSupportedTypes: ['block']. (@bbatsov) - #11462: Fix over-indentation when autocorrecting nested hashes with
Layout/FirstHashElementIndentation. (@ydakuka) - #14880: Recognize block on different line from left side of multi-line assignment in
Layout/MultilineAssignmentLayout. (@sanfrecce-osaka) - #14641: Fix false positive in
Lint/RedundantSafeNavigationwhen using&.respond_to?with methods defined onObject(e.g.,:class). (@bbatsov) - #14098: Mark
Lint/SafeNavigationConsistencyautocorrect as unsafe. (@bbatsov) - #14791: Fix autocorrect producing
SyntaxErrorinLint/InterpolationCheckwhen single quoted string contains double quotes with invalid interpolation. (@ydakuka)
Changes
- #14872: Tweak autocorrection in
Style/HashAsLastArrayItemwhen multiline hash elements. (@koic) - #14917: Change
Style/EndlessMethodcop to consider receivers. (@fatkodima) - #14851: Reduce precision in 'Finished in X.X seconds' message to 5 decimal places. (@ZimbiX)
- #14895: Rename
class_definitiontoclass_keywordinEnforcedStyleofStyle/EmptyClassDefinition. (@koic) - #14956: Add support for
String.newwith interpolated strings toStyle/RedundantInterpolationUnfreeze. (@lovro-bikic) - #14955: Register redundant parentheses around block body in
Style/RedundantParentheses. (@lovro-bikic)