RuboCop Faker を作った

以前の日記に書いた Faker 2 での破壊的変更となる positional arguments から keyword arguments への移行をサポートする Gem を作った。

github.com

RuboCop の 3rd party gem として作っているので、gem i rubocop-faker などして以下のように使う。

非推奨な引数の形式を使っている場所を検出するには以下のコマンドを実行する。

% rubocop --require rubocop-faker --only Faker/DeprecatedArguments

非推奨な引数の形式を Faker 2 の引数の形式に自動修正するには以下のコマンドを実行する。

% rubocop --require rubocop-faker --only Faker/DeprecatedArguments --auto-correct

以下のように keyword arguments を使うスタイルに自動修正される。

-Faker::Avatar.image(slug, size, format, set, bgset)
+Faker::Avatar.image(slug: slug, size: size, format: format, set: set, bgset: bgset)

Faker 2 での破壊的変更については以前の日記を参照のこと。

koic.hatenablog.com

おまけ

今回の移行ツールとして影響されたのは以下。

基本的に一回実行するだけのコマンドとなると思うので、あまり手を掛けずに作る方向で進めた。gem の名前でいろいろと悩んでいたが AST の変換には RuboCop を使うのが一番手が早そうだったので、そのまま素直に RuboCop Faker とした。他の命名案についても Ginza.rb の懇親会で話していたが無難に落ち着けた感じ。