railsコマンドの実行を超早くするrrails

最近はお仕事で久々にがっつりrubyを書いてます。rails難しいです。

それはさておき、railsコマンドの実行が遅いのがつらいので、色々探していたら、jugyoさんのrails-shを見つけました。

rails-shはscalaのsbtとかみたいに、railsを読みこみ済みの環境を起動しっぱなしにしておき、既にライブラリ読みこみ状態からコンソールからコマンドを実行することで、ライブラリ読みこみにかかる時間を短縮する、というツールで、非常に実行を高速化することができます。

しばらく使っていたのですが、

  • raills-shのコンソールへ移動して打つのを忘れる
  • zshじゃない
  • RAILS_ENVがtestなコマンドも欲しいと2つのscreenのwindowを消費する
  • rake -Tが動かない

などがあったので、TCPでコマンドを送り、それ経由でrails/rakeコマンドを実行させるrrailsというやつを書いてみました。

使い方は簡単で、

bundle exec rrails start

とrrailsのサーバーを起動しておき、

rrails -- rails ....
rrails -- rake -T

などと、rails/rakeなどをそのまま送り実行します。

ずっとコマンドが動きっぱなしのrails console/severなどは、動かなかったりします。

guardからrails-serverを起動することでwindowを節約しつつ、development/testを一気に起動することができます。(guardの起動が遅くなるのが欠点ですが。。。

https://github.com/walf443/guard-rrails

bundle guard init rrails
bundle exec guard

既に似たようなものもあるような気もしますが、まずまず便利なのではないかと思います。