こんにちは、kikedaです。
今回は、gem annotateを紹介しようと思います。小ネタです。
rails appを開発していると頻繁に、rake routeでルーティングを確認したり、dbからtableのschemaを確認することは、多々あると思いますが、私は、こういった手間を省くのにannotateを利用しています。
ただ、サポートしているruby, railsのversionについて、READMEには記載されていないので、ruby, railsのversionを記載しておくと。
$ ruby -v
# => 2.1.0-p0
$ rails -v
# => 4.1.5
この環境で動作を確認しています。
gem annotate
annotateは、各schemaの情報をファイルの先頭もしくは末尾にコメントをつけてくれるgemです。
schema、routingなどを直接ファイルを開くことで確認することができるようになります。
annotateの導入
rails appを想定していますので、導入は簡単です。
Gemfileに記載して、bundle installコマンドを実行します。
$ vi Gemfile
#... Gemfile
gem 'annotate'
$ bundle install
schema情報の追加
tableのschemaをコメントとして追加
$ cd rails_app/
$ bundle exec annotate
model
fixtures
test
spec
factory
routingにコメントを追加
$ cd rails_app/ $ bundle exec annotate --routes
設定でファイルの末尾に記載することも可能です。
設定ファイルの作成
$ bundle exec rails g annotate:install
rake db:migrate時にannotateを起動してコメントを追加
$ vi lib/tasks/auto_annotate_models.rake
...省略
'skip_on_db_migrate' => "true",
...省略
コメントをファイルの末尾に記載
ファイルの先頭に別のコメントが含まれている場合には、annotateのコメントを末尾に追加することができます。
$ vi lib/tasks/auto_annotate_models.rake
...省略
'position_in_routes' => "before",
'position_in_class' => "before",
'position_in_test' => "before",
'position_in_fixture' => "before",
'position_in_factory' => "before",
...省略
# beforeをafterに返ることでファイルの末尾に記載できます。
# annotateのコメントを末尾する場合は、下記のように直します。
'position_in_routes' => "after",
model_dirの値を変更することで,railsアプリ以外で利用することでもできます。
'model_dir' => "app/models",
以上です。ブラウザやrake routeコマンドを打って、出力されるのを数秒待つことなく、みることができるのは
小さなストレスを感じずに作業できるのでいいかと思います。