bin/rails stats

コードの統計情報を表示するコマンド。

bin/rails statsを実行すると以下のような結果になる。

+----------------------+--------+--------+---------+---------+-----+-------+
| Name                 |  Lines |    LOC | Classes | Methods | M/C | LOC/M |
+----------------------+--------+--------+---------+---------+-----+-------+
| Controllers          |      4 |      2 |       1 |       0 |   0 |     0 |
| Helpers              |      5 |      2 |       0 |       0 |   0 |     0 |
| Jobs                 |      9 |      2 |       1 |       0 |   0 |     0 |
| Models               |      8 |      5 |       2 |       0 |   0 |     0 |
| Mailers              |      6 |      4 |       1 |       0 |   0 |     0 |
| Channels             |     12 |      8 |       2 |       0 |   0 |     0 |
| JavaScript           |     24 |     11 |       0 |       0 |   0 |     0 |
| Libraries            |      0 |      0 |       0 |       0 |   0 |     0 |
| Model specs          |      5 |      4 |       0 |       0 |   0 |     0 |
+----------------------+--------+--------+---------+---------+-----+-------+
| Total                |     73 |     38 |       7 |       0 |   0 |     0 |
+----------------------+--------+--------+---------+---------+-----+-------+
  Code LOC: 34     Test LOC: 4     Code to Test Ratio: 1:0.1

Railsの標準的なディレクトリとRSpecのディレクトリは何もしなくとも表示されるが、独自に追加したディレクトリなどは表示されない。

以下のようなタスクを作成することで、調査対象を追加することができる。

# lib/tasks/stats_all.rake
namespace :stats_all do
  task :setup do
    require 'rails/code_statistics'
    # [名前, 対象ディレクトリ]をSTATS_DIRECTORIESに追加する
    ::STATS_DIRECTORIES << ['Domains', 'app/domains']
  end
end
task stats: 'stats_all:setup'