すがブロ

sugamasaoのhatenablogだよ

bundle gem foo -bの挙動がかわった(exeディレクトリになった)

bundle gemでgemライブラリのひな形が作成できる

その中で、-b オプションを付けると実行ファイル用のbinディレクトリが作成される。しかし、Bundler 1.8系からは bin ディレクトリは binstub用(で良いのかな)のsetupやconsoleスクリプト等(-bを付けなくても生成される)が配置され、gemライブラリの実行ファイル用として exe ディレクトリが用意されるようになる。

1.7.9 と 1.8.3での確認

1.7.9 で bundle gem プロジェクト名 -b -t した結果

➜  /tmp  tree baz
baz
├── Gemfile
├── LICENSE.txt
├── README.md
├── Rakefile
├── baz.gemspec
├── bin
│   └── baz
├── lib
│   ├── baz
│   │   └── version.rb
│   └── baz.rb
└── spec
    ├── baz_spec.rb
    └── spec_helper.rb

4 directories, 10 files

1.8.3 で bundle gem プロジェクト名 -b -t した結果

➜  /tmp  tree bar
bar
├── Gemfile
├── LICENSE.txt
├── README.md
├── Rakefile
├── bar.gemspec
├── bin
│   ├── console
│   └── setup
├── exe
│   └── bar
├── lib
│   ├── bar
│   │   └── version.rb
│   └── bar.rb
└── spec
    ├── bar_spec.rb
    └── spec_helper.rb

5 directories, 12 files

経緯など

move gem bins to exe/ and add console and setup · ab3e217 · bundler/bundler · GitHub

あたりでやりとしていている。インパクトある割にしれっと変わってて何なのwという感じだけど、やりとりの先のブログとかも見ると、RSpecとかずいぶん前からそうしてるしみたいな事が書いてある。

rspec/rspec-core · GitHub

なるほどねー

その他

いつのバージョンから入ったか調べてないけど、bundle gemの時に、MITライセンスにするかだとか、テスト用フレームワークはどれを使用するか、等が質問されるようになっている。

これらの回答結果は設定ファイルとして(~/.bundle/configに)保存されるようになっていて、フレームワークの指定等をしなかった場合のデフォルト値として使われるようになってるっぽい。