RuboCop 0.58.1 がリリースされた

RuboCop 0.58.1 がリリースされた。

github.com

Parser gem 2.5.1.1 に以下の問題があったため、そのバージョンへの依存を回避するのがリリースのきっかけになっている。

% cat foo.rb
class Foo < Bar
end
% ruby-parse --25 foo.rb
foo.rb:2:1: error: unexpected token kEND
foo.rb:2: end
foo.rb:2: ^~~

この関係で Parser に依存する RuboCop で起きる問題を回避している。そのほかバグフィックスがいくつか入っているので、RuboCop 0.58.0 を使っているユーザーは問答無用で 0.58.1 にアップグレードをしておくと良い。

以下は自分の直したもの。

Bug fixes

#6086: Fix an error for Gemspec/OrderedDependencies when using method call to gem names in gemspec. (@koic)

以下のように add_development_dependency の引数の Gem 名の文字列にメソッド呼び出しがあるケースがエラーになっていたのに対処した。

Gem::Specification.new do |spec|
  spec.add_development_dependency 'rspec'.freeze
  spec.add_development_dependency 'rubocop'.freeze
end

再帰を使ってメソッドチェーンしているケースにも対応している。

#6088: Fix an error for Layout/MultilineAssignmentLayout cop when using multi-line block defines on separate lines. (@koic)

foo = -> { ... といった代入のケースについて取り締まる Cop だが、以下のようにブロックでの代入がないケースについて RuboCop 0.58.0 でリグレッションが起きてエラーになっていたのを直した。

default_scope -> {
  where(foo: "bar")
}

テストケースの隙間をぬったリグレッションだったので、不足していたテストケースを追加している (フィードバックのコードに基づいていたものの、例が default_scope というのもあれなのだった) 。