Commit b195f0c
authored
build(deps): bump the all-dependencies group with 2 updates (#256)
Bumps the all-dependencies group with 2 updates:
[rubocop](https://github.com/rubocop/rubocop) and
[rubocop-rails](https://github.com/rubocop/rubocop-rails).
Updates `rubocop` from 1.87.0 to 1.88.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rubocop/rubocop/releases">rubocop's
releases</a>.</em></p>
<blockquote>
<h2>RuboCop v1.88.0</h2>
<h3>New features</h3>
<ul>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15166">#15166</a>:
Add a new <code>Recursive</code> option to
<code>Style/MutableConstant</code>. When enabled, the cop checks and
freezes mutable literals nested inside arrays and hashes. The option is
disabled by default to preserve existing behavior. ([<a
href="https://github.com/paracycle"><code>@paracycle</code></a>][])</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15220">#15220</a>:
Fix a bad autocorrect for <code>Lint/RedundantSplatExpansion</code> when
splatting an empty literal (e.g. <code>when *[]</code> or <code>rescue
*[]</code>), which expanded to invalid or semantically different code.
([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15221">#15221</a>:
Fix a bad autocorrect for <code>Lint/RegexpAsCondition</code> when the
regexp literal is negated (e.g. <code>if !/foo/</code>), which inverted
the condition. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15242">#15242</a>:
Fix a bad autocorrect for <code>Lint/SymbolConversion</code> when the
receiver is an interpolated string containing an embedded double quote
(e.g. <code>"foo#{bar}\"qux".to_sym</code>), which
produced a syntax error. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15270">#15270</a>:
Fix a crash for <code>Style/CombinableLoops</code> when a
<code>for</code> loop has an empty body, and stop autocorrecting
consecutive <code>for</code> loops whose iteration variables differ
(which produced code referencing an undefined variable). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15272">#15272</a>:
Fix a crash for <code>Style/ConstantVisibility</code> when a visibility
declaration has a numeric literal argument (e.g. <code>private_constant
42</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15215">#15215</a>:
Fix a false negative for <code>Lint/OrderedMagicComments</code> when an
<code>encoding</code> magic comment is preceded by a magic comment other
than <code>frozen_string_literal</code> (e.g.
<code>shareable_constant_value</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15228">#15228</a>:
Fix a false negative for <code>Lint/RedundantWithIndex</code> when the
block takes no arguments (e.g. <code>ary.each_with_index { do_something
}</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15230">#15230</a>:
Fix a false negative for <code>Lint/RequireRelativeSelfPath</code> when
requiring the current file by name with its extension (e.g.
<code>require_relative 'foo.rb'</code>) and the file path is absolute.
([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15229">#15229</a>:
Fix a false negative for <code>Lint/SafeNavigationChain</code> when an
ordinary method is chained after a parenthesized safe navigation call
(e.g. <code>(x&.foo).bar</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15225">#15225</a>:
Fix a false negative for <code>Lint/SafeNavigationWithEmpty</code> when
the receiver of <code>&.empty?</code> is a local variable, instance
variable, constant, or other non-method-call expression. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15231">#15231</a>:
Fix a false negative for <code>Lint/SendWithMixinArgument</code> when
<code>send</code>/<code>public_send</code>/<code>__send__</code> is
called with no explicit receiver or with a <code>self</code> receiver
(e.g. <code>send(:include, Bar)</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15248">#15248</a>:
Fix a false negative for <code>Lint/ToEnumArguments</code> when more
positional arguments are passed than the method accepts (e.g. <code>def
m(x); to_enum(:m, x, extra); end</code>), which raises
<code>ArgumentError</code> when the enumerator is used. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15249">#15249</a>:
Fix a false negative for <code>Lint/UnescapedBracketInRegexp</code> when
an unescaped <code>]</code> is preceded by an escaped backslash (e.g.
<code>/abc\\]123/</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15267">#15267</a>:
Fix a false positive for
<code>Style/ArrayIntersectWithSingleElement</code> with a splat argument
(e.g. <code>array.intersect?([*foo])</code>), which is not a single
element and was incorrectly rewritten to
<code>array.include?(*foo)</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15272">#15272</a>:
Fix a false positive for <code>Style/ColonMethodCall</code> with chained
JRuby interop calls (e.g. <code>Java::com::something_method</code>).
([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15271">#15271</a>:
Fix a false positive for <code>Style/ConditionalAssignment</code> with
<code>EnforcedStyle: assign_inside_condition</code> when assigning an
<code>unless</code> without an <code>else</code> branch (e.g. <code>x =
unless cond; 1; end</code>), which was rewritten to move the assignment
inside the <code>unless</code> and changed behavior when the condition
was true. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/issues/14401">#14401</a>:
Fix a false positive for <code>Layout/BlockAlignment</code> with
<code>EnforcedStyleAlignWith: start_of_line</code> when a block is
passed as a method argument. ([<a
href="https://github.com/augustocbx"><code>@augustocbx</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15216">#15216</a>:
Fix a false positive for <code>Lint/RaiseException</code> when
<code>raise Exception</code> is used inside a module nested within an
allowed implicit namespace (e.g. <code>Gem</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15219">#15219</a>:
Fix a false positive for <code>Lint/RedundantDirGlobSort</code> when
<code>sort</code> is given a comparator block or a block-pass argument,
which is not redundant with the default sorting. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15224">#15224</a>:
Fix a false positive for <code>Lint/ShadowingOuterLocalVariable</code>
when a block argument has the same name as a pattern variable from a
different <code>in</code> branch of the same <code>case</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15239">#15239</a>:
Fix a false positive for
<code>Lint/SuppressedExceptionInNumberConversion</code> when the numeric
constructor already passes <code>exception: false</code> (e.g.
<code>Integer(arg, exception: false) rescue nil</code>), which also
produced an autocorrect with a duplicate <code>exception: false</code>
keyword. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15243">#15243</a>:
Fix a false positive for <code>Lint/TopLevelReturnWithArgument</code>
when a <code>return</code> with an argument is inside a
numbered-parameter block or an <code>it</code> block. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15245">#15245</a>:
Fix a false positive for <code>Lint/UselessRuby2Keywords</code> when
<code>ruby2_keywords</code> in a nested class or module refers to a
method of the same name defined in an outer scope. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15246">#15246</a>:
Fix a false positive for <code>Lint/UselessSetterCall</code> when a
multiple assignment uses nested destructuring (e.g. <code>(a, b), c =
arg, other_arg</code>), which misaligned variables with the right-hand
side values. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/issues/15125">#15125</a>:
Fix a false positive for <code>Style/ZeroLengthPredicate</code> when
<code>File::Stat.new(...).size.zero?</code> is used. ([<a
href="https://github.com/augustocbx"><code>@augustocbx</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15196">#15196</a>:
Fix <code>--start-server</code> to wait until the server is running
before returning, which fixes a flaky <code>--restart-server</code> spec
and a race for commands run right after starting the server. ([<a
href="https://github.com/koic"><code>@koic</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15272">#15272</a>:
Fix <code>Style/Alias</code> not detecting block scope for
numbered-parameter and <code>it</code> blocks, which caused a false
positive for <code>alias_method</code> and a false negative for
<code>alias</code> inside such blocks. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15281">#15281</a>:
Fix an incorrect autocorrect when <code>Style/IfUnlessModifier</code>
and <code>Style/Next</code> correct the same conditional. ([<a
href="https://github.com/fynsta"><code>@fynsta</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/issues/15260">#15260</a>:
Fix an error for <code>Style/FileWrite</code> when a literal or variable
is passed to <code>write</code> in the block form. ([<a
href="https://github.com/koic"><code>@koic</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15276">#15276</a>:
Fix an error for <code>Style/RedundantFormat</code> when the format
string is a heredoc with format arguments. ([<a
href="https://github.com/fynsta"><code>@fynsta</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15270">#15270</a>:
Fix an incorrect autocorrect for <code>Style/AndOr</code> when an
operand is <code>next</code>, <code>break</code>, or <code>yield</code>
with an argument (e.g. <code>foo and next 1</code>), which produced
invalid Ruby like <code>foo && next 1</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15267">#15267</a>:
Fix an incorrect autocorrect for <code>Style/ArrayFirstLast</code> when
<code>arr[0]</code>/<code>arr[-1]</code> is the target of a compound
assignment (e.g. <code>arr[0] += 1</code>), which produced
<code>arr.first += 1</code> and raised <code>NoMethodError</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15267">#15267</a>:
Fix an incorrect autocorrect for <code>Style/ArrayIntersect</code> where
a negated predicate on a safe-navigation chain (e.g.
<code>a&.intersection(b)&.none?</code>) was rewritten to
<code>!a&.intersect?(b)</code>, flipping the result when the
receiver is <code>nil</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15273">#15273</a>:
Fix an incorrect autocorrect for <code>Style/BlockDelimiters</code> that
converted a single-line <code>do...end</code> block containing a
block-level <code>rescue</code> or <code>ensure</code> to
<code>{...}</code>, producing invalid Ruby. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15268">#15268</a>:
Fix an incorrect autocorrect for <code>Style/CaseEquality</code> when
the argument is an operator or unary expression (e.g. <code>Array === a
+ b</code>), which produced mis-parsed code like <code>a +
b.is_a?(Array)</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15268">#15268</a>:
Fix an incorrect autocorrect for
<code>Style/ClassEqualityComparison</code> inside a namespace when the
class name string is already fully qualified (e.g. <code>bar.class.name
== '::Bar'</code>), which produced <code>instance_of?(::::Bar)</code>
and was a syntax error. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15268">#15268</a>:
Fix an incorrect autocorrect for
<code>Style/ClassEqualityComparison</code> when comparing
<code>Class</code> itself to a string literal (e.g. <code>var.class ==
'Date'</code>), which produced <code>var.instance_of?('Date')</code> and
raised <code>TypeError</code>; such comparisons are no longer
autocorrected. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15274">#15274</a>:
Fix an incorrect autocorrect for
<code>Style/ClassMethodsDefinitions</code> that corrupted a preceding
comment containing <code>def <name></code> and left the method
undefined as a class method. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15270">#15270</a>:
Fix an incorrect autocorrect for <code>Style/ComparableClamp</code> when
the clamped value is an operator expression (e.g. <code>a + b</code>),
which produced mis-parsed code like <code>a + b.clamp(low, high)</code>.
([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15267">#15267</a>:
Fix an incorrect autocorrect for <code>Style/ConcatArrayLiterals</code>
with an empty array literal argument (e.g. <code>arr.concat([],
[b])</code>), which produced invalid Ruby like <code>arr.push(,
b)</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15274">#15274</a>:
Fix an incorrect autocorrect for <code>Style/DigChain</code> that
duplicated a trailing comment and dropped indentation when the chain was
inside a method or block. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15288">#15288</a>:
Fix an incorrect autocorrect for <code>Lint/UselessTimes</code> when a
<code>1.times</code> block takes a single destructured (<code>|(a,
b)|</code>) or splat (<code>|*a|</code>) argument, which produced a body
referencing an undefined variable. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15280">#15280</a>:
Fix an incorrect autocorrect for
<code>Style/ConditionalAssignment</code> with <code>EnforcedStyle:
assign_inside_condition</code> and a single-line <code>case</code>. ([<a
href="https://github.com/fynsta"><code>@fynsta</code></a>][])</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md">rubocop's
changelog</a>.</em></p>
<blockquote>
<h2>1.88.0 (2026-06-16)</h2>
<h3>New features</h3>
<ul>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15166">#15166</a>:
Add a new <code>Recursive</code> option to
<code>Style/MutableConstant</code>. When enabled, the cop checks and
freezes mutable literals nested inside arrays and hashes. The option is
disabled by default to preserve existing behavior. ([<a
href="https://github.com/paracycle"><code>@paracycle</code></a>][])</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15220">#15220</a>:
Fix a bad autocorrect for <code>Lint/RedundantSplatExpansion</code> when
splatting an empty literal (e.g. <code>when *[]</code> or <code>rescue
*[]</code>), which expanded to invalid or semantically different code.
([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15221">#15221</a>:
Fix a bad autocorrect for <code>Lint/RegexpAsCondition</code> when the
regexp literal is negated (e.g. <code>if !/foo/</code>), which inverted
the condition. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15242">#15242</a>:
Fix a bad autocorrect for <code>Lint/SymbolConversion</code> when the
receiver is an interpolated string containing an embedded double quote
(e.g. <code>"foo#{bar}\"qux".to_sym</code>), which
produced a syntax error. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15270">#15270</a>:
Fix a crash for <code>Style/CombinableLoops</code> when a
<code>for</code> loop has an empty body, and stop autocorrecting
consecutive <code>for</code> loops whose iteration variables differ
(which produced code referencing an undefined variable). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15272">#15272</a>:
Fix a crash for <code>Style/ConstantVisibility</code> when a visibility
declaration has a numeric literal argument (e.g. <code>private_constant
42</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15215">#15215</a>:
Fix a false negative for <code>Lint/OrderedMagicComments</code> when an
<code>encoding</code> magic comment is preceded by a magic comment other
than <code>frozen_string_literal</code> (e.g.
<code>shareable_constant_value</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15228">#15228</a>:
Fix a false negative for <code>Lint/RedundantWithIndex</code> when the
block takes no arguments (e.g. <code>ary.each_with_index { do_something
}</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15230">#15230</a>:
Fix a false negative for <code>Lint/RequireRelativeSelfPath</code> when
requiring the current file by name with its extension (e.g.
<code>require_relative 'foo.rb'</code>) and the file path is absolute.
([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15229">#15229</a>:
Fix a false negative for <code>Lint/SafeNavigationChain</code> when an
ordinary method is chained after a parenthesized safe navigation call
(e.g. <code>(x&.foo).bar</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15225">#15225</a>:
Fix a false negative for <code>Lint/SafeNavigationWithEmpty</code> when
the receiver of <code>&.empty?</code> is a local variable, instance
variable, constant, or other non-method-call expression. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15231">#15231</a>:
Fix a false negative for <code>Lint/SendWithMixinArgument</code> when
<code>send</code>/<code>public_send</code>/<code>__send__</code> is
called with no explicit receiver or with a <code>self</code> receiver
(e.g. <code>send(:include, Bar)</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15248">#15248</a>:
Fix a false negative for <code>Lint/ToEnumArguments</code> when more
positional arguments are passed than the method accepts (e.g. <code>def
m(x); to_enum(:m, x, extra); end</code>), which raises
<code>ArgumentError</code> when the enumerator is used. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15249">#15249</a>:
Fix a false negative for <code>Lint/UnescapedBracketInRegexp</code> when
an unescaped <code>]</code> is preceded by an escaped backslash (e.g.
<code>/abc\\]123/</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15267">#15267</a>:
Fix a false positive for
<code>Style/ArrayIntersectWithSingleElement</code> with a splat argument
(e.g. <code>array.intersect?([*foo])</code>), which is not a single
element and was incorrectly rewritten to
<code>array.include?(*foo)</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15272">#15272</a>:
Fix a false positive for <code>Style/ColonMethodCall</code> with chained
JRuby interop calls (e.g. <code>Java::com::something_method</code>).
([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15271">#15271</a>:
Fix a false positive for <code>Style/ConditionalAssignment</code> with
<code>EnforcedStyle: assign_inside_condition</code> when assigning an
<code>unless</code> without an <code>else</code> branch (e.g. <code>x =
unless cond; 1; end</code>), which was rewritten to move the assignment
inside the <code>unless</code> and changed behavior when the condition
was true. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/issues/14401">#14401</a>:
Fix a false positive for <code>Layout/BlockAlignment</code> with
<code>EnforcedStyleAlignWith: start_of_line</code> when a block is
passed as a method argument. ([<a
href="https://github.com/augustocbx"><code>@augustocbx</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15216">#15216</a>:
Fix a false positive for <code>Lint/RaiseException</code> when
<code>raise Exception</code> is used inside a module nested within an
allowed implicit namespace (e.g. <code>Gem</code>). ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15219">#15219</a>:
Fix a false positive for <code>Lint/RedundantDirGlobSort</code> when
<code>sort</code> is given a comparator block or a block-pass argument,
which is not redundant with the default sorting. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15224">#15224</a>:
Fix a false positive for <code>Lint/ShadowingOuterLocalVariable</code>
when a block argument has the same name as a pattern variable from a
different <code>in</code> branch of the same <code>case</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15239">#15239</a>:
Fix a false positive for
<code>Lint/SuppressedExceptionInNumberConversion</code> when the numeric
constructor already passes <code>exception: false</code> (e.g.
<code>Integer(arg, exception: false) rescue nil</code>), which also
produced an autocorrect with a duplicate <code>exception: false</code>
keyword. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15243">#15243</a>:
Fix a false positive for <code>Lint/TopLevelReturnWithArgument</code>
when a <code>return</code> with an argument is inside a
numbered-parameter block or an <code>it</code> block. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15245">#15245</a>:
Fix a false positive for <code>Lint/UselessRuby2Keywords</code> when
<code>ruby2_keywords</code> in a nested class or module refers to a
method of the same name defined in an outer scope. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15246">#15246</a>:
Fix a false positive for <code>Lint/UselessSetterCall</code> when a
multiple assignment uses nested destructuring (e.g. <code>(a, b), c =
arg, other_arg</code>), which misaligned variables with the right-hand
side values. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/issues/15125">#15125</a>:
Fix a false positive for <code>Style/ZeroLengthPredicate</code> when
<code>File::Stat.new(...).size.zero?</code> is used. ([<a
href="https://github.com/augustocbx"><code>@augustocbx</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15196">#15196</a>:
Fix <code>--start-server</code> to wait until the server is running
before returning, which fixes a flaky <code>--restart-server</code> spec
and a race for commands run right after starting the server. ([<a
href="https://github.com/koic"><code>@koic</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15272">#15272</a>:
Fix <code>Style/Alias</code> not detecting block scope for
numbered-parameter and <code>it</code> blocks, which caused a false
positive for <code>alias_method</code> and a false negative for
<code>alias</code> inside such blocks. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15281">#15281</a>:
Fix an incorrect autocorrect when <code>Style/IfUnlessModifier</code>
and <code>Style/Next</code> correct the same conditional. ([<a
href="https://github.com/fynsta"><code>@fynsta</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/issues/15260">#15260</a>:
Fix an error for <code>Style/FileWrite</code> when a literal or variable
is passed to <code>write</code> in the block form. ([<a
href="https://github.com/koic"><code>@koic</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15276">#15276</a>:
Fix an error for <code>Style/RedundantFormat</code> when the format
string is a heredoc with format arguments. ([<a
href="https://github.com/fynsta"><code>@fynsta</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15270">#15270</a>:
Fix an incorrect autocorrect for <code>Style/AndOr</code> when an
operand is <code>next</code>, <code>break</code>, or <code>yield</code>
with an argument (e.g. <code>foo and next 1</code>), which produced
invalid Ruby like <code>foo && next 1</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15267">#15267</a>:
Fix an incorrect autocorrect for <code>Style/ArrayFirstLast</code> when
<code>arr[0]</code>/<code>arr[-1]</code> is the target of a compound
assignment (e.g. <code>arr[0] += 1</code>), which produced
<code>arr.first += 1</code> and raised <code>NoMethodError</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15267">#15267</a>:
Fix an incorrect autocorrect for <code>Style/ArrayIntersect</code> where
a negated predicate on a safe-navigation chain (e.g.
<code>a&.intersection(b)&.none?</code>) was rewritten to
<code>!a&.intersect?(b)</code>, flipping the result when the
receiver is <code>nil</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15273">#15273</a>:
Fix an incorrect autocorrect for <code>Style/BlockDelimiters</code> that
converted a single-line <code>do...end</code> block containing a
block-level <code>rescue</code> or <code>ensure</code> to
<code>{...}</code>, producing invalid Ruby. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15268">#15268</a>:
Fix an incorrect autocorrect for <code>Style/CaseEquality</code> when
the argument is an operator or unary expression (e.g. <code>Array === a
+ b</code>), which produced mis-parsed code like <code>a +
b.is_a?(Array)</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15268">#15268</a>:
Fix an incorrect autocorrect for
<code>Style/ClassEqualityComparison</code> inside a namespace when the
class name string is already fully qualified (e.g. <code>bar.class.name
== '::Bar'</code>), which produced <code>instance_of?(::::Bar)</code>
and was a syntax error. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15268">#15268</a>:
Fix an incorrect autocorrect for
<code>Style/ClassEqualityComparison</code> when comparing
<code>Class</code> itself to a string literal (e.g. <code>var.class ==
'Date'</code>), which produced <code>var.instance_of?('Date')</code> and
raised <code>TypeError</code>; such comparisons are no longer
autocorrected. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15274">#15274</a>:
Fix an incorrect autocorrect for
<code>Style/ClassMethodsDefinitions</code> that corrupted a preceding
comment containing <code>def <name></code> and left the method
undefined as a class method. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15270">#15270</a>:
Fix an incorrect autocorrect for <code>Style/ComparableClamp</code> when
the clamped value is an operator expression (e.g. <code>a + b</code>),
which produced mis-parsed code like <code>a + b.clamp(low, high)</code>.
([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15267">#15267</a>:
Fix an incorrect autocorrect for <code>Style/ConcatArrayLiterals</code>
with an empty array literal argument (e.g. <code>arr.concat([],
[b])</code>), which produced invalid Ruby like <code>arr.push(,
b)</code>. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15274">#15274</a>:
Fix an incorrect autocorrect for <code>Style/DigChain</code> that
duplicated a trailing comment and dropped indentation when the chain was
inside a method or block. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
<li><a
href="https://redirect.github.com/rubocop/rubocop/pull/15288">#15288</a>:
Fix an incorrect autocorrect for <code>Lint/UselessTimes</code> when a
<code>1.times</code> block takes a single destructured (<code>|(a,
b)|</code>) or splat (<code>|*a|</code>) argument, which produced a body
referencing an undefined variable. ([<a
href="https://github.com/bbatsov"><code>@bbatsov</code></a>][])</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rubocop/rubocop/commit/37bf5ade07fac82275840181a351bc5d934a9af1"><code>37bf5ad</code></a>
Cut 1.88</li>
<li><a
href="https://github.com/rubocop/rubocop/commit/cd0c2e31238e0266dca6797cd5389dc31a4ceb66"><code>cd0c2e3</code></a>
Update Changelog</li>
<li><a
href="https://github.com/rubocop/rubocop/commit/b7af64a7f3f7c763a5bcddc49ffaa1ec0af802eb"><code>b7af64a</code></a>
[Fix <a
href="https://redirect.github.com/rubocop/rubocop/issues/12276">#12276</a>]
Record pending cops options in the auto-gen-config command</li>
<li><a
href="https://github.com/rubocop/rubocop/commit/bbd7ff256e281a703980783a52eea31c2c521aab"><code>bbd7ff2</code></a>
Add hk integration docs</li>
<li><a
href="https://github.com/rubocop/rubocop/commit/117e40aad2dff1b927c42294078534b076084418"><code>117e40a</code></a>
Merge pull request <a
href="https://redirect.github.com/rubocop/rubocop/issues/15293">#15293</a>
from RedZapdos123/fix-literal-interp-hash-symbol</li>
<li><a
href="https://github.com/rubocop/rubocop/commit/4d95141dccc8f21c26c654fc0323c734b93712fb"><code>4d95141</code></a>
[Fix <a
href="https://redirect.github.com/rubocop/rubocop/issues/15291">#15291</a>]
Fix hash symbol interpolation</li>
<li><a
href="https://github.com/rubocop/rubocop/commit/0347d273b7f01e91728a8d10daddce8c50fb2d9e"><code>0347d27</code></a>
Add <code>Recursive</code> option to
<code>Style/MutableConstant</code></li>
<li><a
href="https://github.com/rubocop/rubocop/commit/f0d92b402c3b85a3491a2624bcf28524f8e3e8b5"><code>f0d92b4</code></a>
Fix incorrect autocorrects for <code>Style/FileWrite</code> with
heredocs</li>
<li><a
href="https://github.com/rubocop/rubocop/commit/32df3468d3346a6bb339fb719e425a5adfffbb2c"><code>32df346</code></a>
Fix an incorrect autocorrect for <code>Style/Semicolon</code> with
heredocs</li>
<li><a
href="https://github.com/rubocop/rubocop/commit/4c221fbdfe96a58e6d9fe1e666d0cb8a87ec12ca"><code>4c221fb</code></a>
[Fix <a
href="https://redirect.github.com/rubocop/rubocop/issues/15269">#15269</a>]
Fix a false positive where cop <code>Include</code> patterns matched
parent...</li>
<li>Additional commits viewable in <a
href="https://github.com/rubocop/rubocop/compare/v1.87.0...v1.88.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `rubocop-rails` from 2.35.4 to 2.35.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rubocop/rubocop-rails/releases">rubocop-rails's
releases</a>.</em></p>
<blockquote>
<h2>RuboCop Rails v2.35.5</h2>
<h3>Bug fixes</h3>
<ul>
<li><a
href="https://redirect.github.com/rubocop/rubocop-rails/issues/1379">#1379</a>:
Fix an incorrect offense for <code>Rails/SaveBang</code> when a persist
method is the last expression in a multiline method or block. (<a
href="https://github.com/aki77"><code>@aki77</code></a>)</li>
</ul>
<h3>Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/rubocop/rubocop-rails/pull/1617">#1617</a>:
Allow <code>Rails.env.local?</code> in <code>Rails/Env</code>. (<a
href="https://github.com/corsonknowles"><code>@corsonknowles</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md">rubocop-rails's
changelog</a>.</em></p>
<blockquote>
<h2>2.35.5 (2026-06-21)</h2>
<h3>Bug fixes</h3>
<ul>
<li><a
href="https://redirect.github.com/rubocop/rubocop-rails/issues/1379">#1379</a>:
Fix an incorrect offense for <code>Rails/SaveBang</code> when a persist
method is the last expression in a multiline method or block. ([<a
href="https://github.com/aki77"><code>@aki77</code></a>][])</li>
</ul>
<h3>Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/rubocop/rubocop-rails/pull/1617">#1617</a>:
Allow <code>Rails.env.local?</code> in <code>Rails/Env</code>. ([<a
href="https://github.com/corsonknowles"><code>@corsonknowles</code></a>][])</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rubocop/rubocop-rails/commit/7ec7b4bfb1b3233f839b2d97976c0996257a1bcc"><code>7ec7b4b</code></a>
Cut 2.35.5</li>
<li><a
href="https://github.com/rubocop/rubocop-rails/commit/6393e5367519e7df8165311fee2cd91817bf44ad"><code>6393e53</code></a>
Update Changelog</li>
<li><a
href="https://github.com/rubocop/rubocop-rails/commit/138a926d7ca1362a15f63c925133a2425604efd5"><code>138a926</code></a>
Prevent <code>rubocop:disable</code> directives from being included in
examples</li>
<li><a
href="https://github.com/rubocop/rubocop-rails/commit/de6b1c27e733c9e3cda7e9d18eb6f70bddc2aa0e"><code>de6b1c2</code></a>
Merge pull request <a
href="https://redirect.github.com/rubocop/rubocop-rails/issues/1640">#1640</a>
from aki77/issue-1379</li>
<li><a
href="https://github.com/rubocop/rubocop-rails/commit/697529ee99e001b706c9f5c31074b589626b84b8"><code>697529e</code></a>
[Fix <a
href="https://redirect.github.com/rubocop/rubocop-rails/issues/1379">#1379</a>]
Fix a false positive for <code>Rails/SaveBang</code> when a persist
method i...</li>
<li><a
href="https://github.com/rubocop/rubocop-rails/commit/20bd64f6d000ddc2ffd46221476f21413635b62c"><code>20bd64f</code></a>
Merge pull request <a
href="https://redirect.github.com/rubocop/rubocop-rails/issues/1638">#1638</a>
from corsonknowles/allow-rails-env-local</li>
<li><a
href="https://github.com/rubocop/rubocop-rails/commit/16cfcb2c8a10eec84cc1769785a2067d12fbad1d"><code>16cfcb2</code></a>
Allow <code>Rails.env.local?</code> in <code>Rails/Env</code></li>
<li><a
href="https://github.com/rubocop/rubocop-rails/commit/d3e3a603de97874194f56e01195ba344cf628f6e"><code>d3e3a60</code></a>
Fix a build error in the Ruby 3.1 CI matrix</li>
<li><a
href="https://github.com/rubocop/rubocop-rails/commit/c6d6c6886af15ae3c4439ed41f45f3036b9cba6c"><code>c6d6c68</code></a>
Reset the docs version</li>
<li>See full diff in <a
href="https://github.com/rubocop/rubocop-rails/compare/v2.35.4...v2.35.5">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>1 file changed
Lines changed: 5 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | | - | |
| 87 | + | |
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | | - | |
| 109 | + | |
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| |||
0 commit comments