Ruby でメトリクス(Rails プラグイン)

インストール

> gem install reek
> gem install roodi
> gem install flog
> gem install flay

実行

reek

> cd vendor/plugins/redmine_hudson
> reek app lib test

roodi

> cd vendor/plugins/redmine_hudson
> roodi app/**/*.rb lib/**/*.rb test/**/*.rb

flog

> cd vendor/plugins/redmine_hudson
> flog app lib test

flay

> cd vendor/plugins/redmine_hudson
> flay

でるわ。でるわ。

rake タスクにする

reek/roodi/flay が入ってない場合に、このタスクがこけるだけならいいんだけど、
db:migrate_plugins などがコケてしまったりするので、

    task :reek => [:cd_plugin_dir, :environment] do
      desc 'check code smell(reek) for Hudson Plugin'
      require "reek"
      system "reek app lib test > reek.log"
    end

のように system でコールしてる。
ホントは Reek::Rake::Task とか使いたいのだけど…。