bin/rails notes
コード内の# TODO: ...
などを一覧表示するコマンド。
以下のコードがあるとする。
class ApplicationController < ActionController::Base
# TODO: svgファイルの対応
# FIXME: 1GB以上のファイルを指定されるとクラッシュする
# NOTE: ライブラリのabcメソッドではXYZな挙動をするため、それを回避するための記述
# XXX: 一部の画像ファイルで動かないことが確認されている チケットABCD-1234を参照
# BUG: ファイルの内容ではなく拡張子でフォーマットを判定してしまっている
# OPTIMIZE: 100MB以上のファイルを指定されると極端に遅くなる
# HACK: トリッキーなコードになりすぎている
# REVIEW: `ruby script/benchmarks/zzz.rb`でパフォーマンスが悪化していないことを確認すること
end
bin/rails notes
を実行すると以下のような結果になる。
app/controllers/application_controller.rb:
* [2] [TODO] svgファイルの対応
* [3] [FIXME] 1GB以上のファイルを指定されるとクラッシュする
* [7] [OPTIMIZE] 100MB以上のファイルを指定されると極端に遅くなる
結果の通り、TODO
、FIXME
、OPTIMIZE
のみ結果に表示される。これら以外を表示したい場合はbin/rails notes -a NOTE XXX
のようにする。
app/controllers/application_controller.rb:
* [4] [NOTE] ライブラリのabcメソッドではXYZな挙動をするため、それを回避するための記述
* [5] [XXX] 一部の画像ファイルで動かないことが確認されている チケットABCD-1234を参照
デフォルトで表示対象を増やしたい場合は、config/environments/development.rb
に以下のような行を追加する。
config.annotations.register_tags('NOTE', 'XXX')
追加後にbin/rails notes
を実行すると以下のようになる。
app/controllers/application_controller.rb:
* [2] [TODO] svgファイルの対応
* [3] [FIXME] 1GB以上のファイルを指定されるとクラッシュする
* [4] [NOTE] ライブラリのabcメソッドではXYZな挙動をするため、それを回避するための記述
* [5] [XXX] 一部の画像ファイルで動かないことが確認されている チケットABCD-1234を参照
* [7] [OPTIMIZE] 100MB以上のファイルを指定されると極端に遅くなる
その他、ディレクトリの追加などはRails のコマンドラインツール - Railsガイドを参照。