Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

RubyCritic で Ruby のコードの品質を静的解析する

RubyCriticは複数の静的解析 gem ( Reek, Flay, Flog)をラップしたツールです。

github.com

下記記事で紹介した metric_fu と似たようなツールですね。

tbpgr.hatenablog.com

インストール

$ gem install rubycritic

デモ

tbpgr/kosi リポジトリに対して実行してみます。

$ rubycritic
running flay smells
......
running flog smells
........................
running reek smells
........................
running complexity
........................
running attributes
........................
running churn
........................
New critique at /path/to/repo/tmp/rubycritic/overview.html

結果の確認

実行直後に自動でブラウザに結果が表示されます。

  • Overview

f:id:tbpg:20160901230742p:plain

  • Code

ソースコードごとの警告の数や複雑度や評価(Rating)が一覧表示される。

f:id:tbpg:20160901230750p:plain

  • Smells

コードの臭いが存在する箇所が一覧表示される。

f:id:tbpg:20160901230800p:plain

  • Details

Smellsで対象コードのリンクを押した際に開かれる画面。
コードの中に警告内容がインラインで表示される。
警告名のリンクを選択すると、警告解説記事にジャンプする。

f:id:tbpg:20160901230821p:plain

各静的解析ツール

名前 内容 Repo
Reek コードの臭いの抽出
Flay コードの重複部を検出。共通化に役立つ
Flog コードの複雑度を測定

関連

simplecov, brakeman, rubocop, rubycritic + Circle CI の設定例

blog.6temes.cat