あたらしくGemをつくるときもBundlerで

% bundle gem mygem

これで mygem というディレクトリが作られてその配下にいろいろつくられます。

ちなみにかってにGitのリポジトリがつくられるので、Mercurialとかつかってる人やおれみたいにgit-flowをつかいたいよ、っていう人は rm -rf .git/ してからあらためてリポジトリをつくるなりすればよいとおもいます。

bundle gemでつくられたGemfileには基本的にさわらないほうがよいとおもいます。gemspecというメソッドがおなじディレクトリの *.gemspec を読みにいって、いいかんじに依存するgemとして扱ってくれます。

このいいかんじに、というのが肝で、Gem::Specification#add_development_dependencyというメソッドで依存するgemを指定しておくと、developmentというグループにgemを追加したことになります。なので、bundle install --without=development とすると開発環境でのみ必要なライブラリ (テストライブラリとか) はインストールされないので本番環境とかにインストールするときに使うとべんりですね。

jewelerとかとくらべると機能に見劣りがするのは否めませんが、ぼくはjewelerのなんでもかんでもやってしまうかんじがあまり好きではないですからbundle gemの生成するコンパクトな雛形は肌に合っているといえます。

とりあえずGemfileのgemspecメソッドだけでも覚えておいて損はないとおもいます。