一索

クジャクは夜にプログラミングします

プロジェクトを簡単で綺麗に始めれるdodonpaというのを作りました

クリーンなRuby on Rails環境を手軽に作るシェルスクリプトdodonpaというのを作ってみました。

rails new my_appを使ってはいけない!

Railsプロジェクトを始めるに当たって、rails new my_appは標準とされているやり方です。しかし、これをやるにはgem i railsをしたりするので、グローバルのgemが汚染されてしまいます。1マシンで環境が解決するなら別にいいのですが、いくつかプロジェクトを作って、それぞれのバージョンが異なり始めるとちゃんとbundleでインストールするときにパスを指定したくなってきます。

すると、まあ、大体次の感じでコマンドを打ちます。

$ mkdir my_app
$ cd my_app
$ echo "source 'https://rubygems.org'\n\ngem 'rails'" > Gemfile
$ bundle install --path vendor/bundle --without production
$ bundle exec rails new . -f -T --skip-bundle
$ echo '/vendor/bundle' >> .gitignore

これでプロジェクトの中にbundlerでインストールされて、グローバルのgemは汚染されなくなります。起動するときはbundle exec rails sみたいな感じになるやつです。

ただ、毎回プロジェクトを始めるときにこれを調べて打つのはメンドイです。というわけで、こういう綺麗にプロジェクトを立ち上げるシェルスクリプトとして、dodonpaというのを作ってみました。名前は世界最速で発進するコースターにあやかりました。

dodonpaの使い方

dodonpa/binにパスを通すとdodonpaコマンドが使えます。すると上のようなプロジェクトを立ち上げるには以下のコマンドでいけるようになります。

$ dodonpa rails my_app

今後の展開

dodonpaのコア部分のスクリプトはdodonpa subcommandを受け取ってdodonpa-subcommandに丸投げするだけの単純なものになっています。つまり、Rails以外のプロジェクトを今後追加することも可能になっています。むしろ、sinatraとかexpressとかやりそうな気がします。
また、dodonpa subcommand:actionという形式も受け取れるようになっています。まだ、作っていませんがrailsのforeman対応ということでdodonpa rails:foreman my_appとかもできるようになる予定です。

そういうマイベストプラクティス集として、自分とともに成長すれば良いかなと思っています。