`Gemspec/RequiredRubyVersion` cop の実装で学んだこと

pocke さんに RuboCop JP 発の PR をレビューしてもらった際に学んだこと。全文に代えたコードは以下。

github.com

少し日本語テキストで記しておく。

  • 今回の例としては false negative のテストコードとして追加しているが、想定しうるコードでクラッシュするのを避ける (今回 required_ruby_version への変数代入が想定できていなかった)
  • スタブを避ける手段が用意されていないかいま一度確認する。今回の例でいうと expect_offense の第2引数にファイル名を渡せるようになっている。使っている API のインタフェースはきちんと調べる

他にも str_content や最左最長一致で不要な正規表現は不要だったなどいろいろあるけれど、まだまだ粗い箇所について今回も勉強になったのだった。