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とかずいぶん前からそうしてるしみたいな事が書いてある。
なるほどねー
その他
いつのバージョンから入ったか調べてないけど、bundle gem
の時に、MITライセンスにするかだとか、テスト用フレームワークはどれを使用するか、等が質問されるようになっている。
これらの回答結果は設定ファイルとして(~/.bundle/config
に)保存されるようになっていて、フレームワークの指定等をしなかった場合のデフォルト値として使われるようになってるっぽい。