Metric Fu を試してみた

Railscasts - Metric Fu
のメモ。


gemの名前もmetric_fuに変更されて、
上記動画の頃よりパワーアップしているようです。


metric_fu: A Ruby Gem for Easy Metric Report Generation
を見れば、グラフがいろいろあって凄そうです。

インストール

rails2.3.10で試しました。
rails3についても対応しているようです。(詳細は上記本家)

gem install
$ gem install metric_fu --user-install

Thank you for downloading Reek. For info:
  - see the reek wiki http://wiki.github.com/kevinrutherford/reek
  - follow @rubyreek on twitter
Successfully installed sexp_processor-3.0.5
Successfully installed ruby_parser-2.0.5
Successfully installed flay-1.4.1
Successfully installed flog-2.5.0
Successfully installed ruby2ruby-1.2.5
Successfully installed reek-1.2.8
Successfully installed roodi-2.1.0
Successfully installed progressbar-0.9.0
Successfully installed colored-1.2
Successfully installed rails_best_practices-0.5.0
Successfully installed hoe-2.6.2
Successfully installed chronic-0.2.3
Successfully installed fattr-2.2.0
Successfully installed arrayfields-4.7.4
Successfully installed main-4.3.0
Successfully installed churn-0.0.12
Successfully installed Saikuro-1.1.0
Successfully installed metric_fu-2.0.1
18 gems installed

うひゃ、一杯入った。

rakeファイル作成
#vim lib/tasks/metric_fu.rake
begin
  require 'metric_fu'
rescue LoadError
end
$ rake -T metric
rake metrics:all  # Generate all metrics reports
実行
$ rake metrics:all


おもむろにブラウザが起動されて
おしゃれな画面が表示されます。

ざっくり

Churn:変更頻度の高いファイルを表示
Flay:重複を表示
Flog:複雑さを表示
Rcov:テストカバレッジ(なぜだか表示されない)
Reek/Roodie:可読性に問題がある箇所を表示
Saikuro:複雑さを表示
Stats:rake stats
Rails Best Practices Results:変更内容を提示(インスタンス変数じゃなくてローカル変数使った方がいいよって指摘された)
Hotspots:上記の結果を、file/class/method単位でまとめて表示


というような感じのようです。

参考

eitoballの練習帳

RoodiとReekの不平をいくつか取り除いて、高いFlogスコアのメソッドを分割した後、コードは簡単に読むここができるようになり一目で理解できるようになりました。

感想

少ししか触ってませんが、なかなか面白いです。
ファイル名クリックでデフォルトエディタで表示されたりしますし。