読者です 読者をやめる 読者になる 読者になる

SideCI Blog

自動コードレビューサービスSideCIを提供している株式会社アクトキャットのコーポレートブログです。



メソッド定義を変更した場合の修正漏れを検知できるようになりました。

SideCI Update Ruby

こんにちは。今週のSideCIのアップデート情報です。

Ruby用の新しい解析ツール Method Definition Validator が利用できるようになりました。

メソッド定義を変更した場合の修正漏れを検知できるようになりました。

メソッドをリネームした場合や引数の数を変更した場合、そのメソッドを呼び出している箇所に対応漏れがないか?を検知します。

Pull Request内の変更差分だけではなくリポジトリ全体のコードが対象になるので「メソッド定義を変更したが、そのメソッドを使用している先の変更が漏れていた」などを検知できます。 対応言語はRubyです。

def do_something
  puts 'do_something'
end

do_something

例えば上記のdo_somethingメソッドをdef do_something(p)の様に変更した場合、呼び出し元では引数が足りないためエラーとなってしまいます。

今回追加した Method Definition Validator を有効にしておくことで、このような変更漏れを本番環境に紛れ込む前に事前検知して指摘することが可能です。

コードレビューを行う際はファイルの差分をもとに行うことが多いかと思いますが、このツールでは 差分がなかった箇所 を検知できるので便利かと思います。

alt="Method Definition Validator image" Method Definition Validator イメージ

SideCIの解析ツール選択画面から Method Definition Validator を有効にすることで、この機能を使用することが可能です。 ※SideCI上で既存でRuboCopを利用しているリポジトリに対してはデフォルトでONになっています

alt="Method Definition Validator setting" Method Definition Validator の設定

Rubocop DefinitionValidator はGitHub上でソースコードを公開してあります。

https://github.com/actcat/rubocop-definition_validator