読者です 読者をやめる 読者になる 読者になる

おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

bundler 1.2.0 リリース

bundler

1.1 からの主な変更内容がまとめられた Bundler: The best way to manage Ruby applications を読んでのメモです。

細かい変更点は bundler/CHANGELOG.md at 1-2-stable · carlhuda/bundler を参照のこと(英語です)。

Ruby のバージョンを指定できるようになった

Gemfile 中に、下記のように Ruby のバーションを指定できるようになりました。

ruby "1.9.3"

上記の設定は、該当するアプリが 1.9.3 と ABI 互換な Ruby VM に依存していることを宣言しています。バージョンチェックが失敗したら、Bundler は例外を投げます。 :engine と :engine_version オプションでより具体的に設定することが出来ます。

ruby "1.9.3", :engine => "jruby", :engine_version => "1.6.7"

パッチレベルまでは指定できないみたいです。

bundle package の対象に :git や :path の gem も含めることが出来るようになった

下記のように –all オプションを付けると、:git や :path で指定された gem も対象に含めることが出来るようになりました。–all は一度使うと記憶されます。

bundle package --all

そもそも bundle package コマンドってなに

bundle package コマンドは、gem を vendor/cache にキャッシュするコマンドです。例えば bundle package を実行 → vendor/cache を git のリポジトリに追加 とすると、他のユーザは gem を外部からダウンロードすることなく bundle install できます。

ローカル git リポジトリ

リモート git リポジトリに置いてある gem をローカルで修正しながら開発したいときなどに恐らく使える設定。例えば下記のコマンドを叩き

bundle config local.rack ~/Work/git/rack

Gemfile に下記のように書く

gem 'rack', :github => 'rack/rack', :branch => 'master'

そうすると、ローカルでは ~/Work/git/rack を参照し、デプロイ時には github 上の rack を参照するようになる。はず(未確認)。