railsとかのrails new hogeみたいなのはどうやってやっているのかな?という疑問を昨日書いたが,これはThor::Groupの力を使うことで実現される.

railsのソースを眺めていてThor::Groupを継承している部分があるのは知っていたが,ファイルをずらーっと生成してくれる便利なアイテムそのものとは!

使い方はThor::Groupを継承し,Thor::Actionsをincludeする.で,これのメソッド・インスタンスメソッドとして設定等を書いていく.

  • テンプレートの位置の基準になるパスの指定
  • コマンド引数を変数に入れる設定
  • template テンプレートファイル名, 実際のファイル名の形式でテンプレートファイルと出力ファイルを指定
  • templateはerbで,二つ目で設定したコマンド引数が入った変数が使える

というような仕組みになっている.テンプレート専用のフォルダとかを作ると便利.

参考にしたのはここ(http://hibariya.github.io/entries/20111025/a0.html)

詳細部分はこの方の解説を参考にしてください.

これで,できることがかなり増えたと思う. これのnode.js版とかってあるのかな?純jsなものを作ろうと思ったらそういうのがあると便利そうだけど・・・