Bundler.setup
Bundler.setup
読み込みパスを設定することで、Gemfile内の全ての依存関係がrequire可能になります。
require 'rubygems'
require 'bundler/setup'
require 'nokogiri'
下記は、指定したグループのみを読み込みパスへ追加しています。
もし、デフォルトグループのGemが必要なのであれば、:default
を含めて下さい。
require 'rubygems'
require 'bundler'
Bundler.setup(:default, :ci)
require 'nokogiri'
互換性
Ruby 2.0とRubygems 2.0は両方とも、Bundler 1.3とそれ以降のバージョンを必要とします。 もし、Bundlerとあなたのシステム間の互換性について確認をしたいのであれば、 互換性リストを参照して下さい。
Learn More: CompatibilityBundlerを使用して
Bundlerは、RubyがGemfile内の全てのGem(と、それら全ての依存性)を見つけることが出来る事を確認します。 もし、あなたのアプリケーションがRails 3なのであれば、アプリケーションには既にBundlerを実行するのに必要なコードが含まれています。 もし、Rails 2.3のアプリケーションであれば、下記を参照して下さい。
Setting up Bundler in Rails 2.3
別の種類のアプリケーション(Sinatraのような)であれば、
何らかのGemのrequireをする前に、Bundlerのセットアップ(set up)が必要になります。
アプリケーションが一番最初に読み込むファイル(Sinatraであれば、require 'sinatra'
を呼び出すファイル)は、
次のようになります。
require 'rubygems'
require 'bundler/setup'
これは自動的にGemfile
を発見し、Gemfile内に指定されている全てのGemをRubyで利用可能にしてくれます。
(技術的な観点から言えば、"読み込みパス上"にそれらのGemが配置されます。)
これは、require 'rubygems'
に特別な力を与えていると考えることも出来ます。
これで、あなたのRubyコードが必要とするGemを、requireすることが可能になります。
例えば、require 'sinatra'
を有効にすることが出来ます。
もし、アプリケーションが多くの依存性を持つ場合、あなたは「Gemfileの全てのGemをrequireしたい」と考えるでしょう。
これを行うには、require 'bundler/setup'
のすぐ後ろに、下記のコードを配置して下さい。
Bundler.require(:default)
我々のGemfileを例にとると、この行は実際には次のように評価されます。
require 'rails'
require 'rack-cache'
require 'nokogiri'
鋭い読者であれば、rack-cacheのGemをrequireする正しい方法は、require 'rack-cache'
では無く、
require 'rack/cache'
であることにお気づきでしょう。
Bunlderにrequire 'rack/cache'
を使用することを伝えるために、Gemfileを更新して下さい。
source 'http://rubygems.org'
gem 'rails', '3.0.0.rc'
gem 'rack-cache', :require => 'rack/cache'
gem 'nokogiri', '~> 1.4.2'
このような小さなGemfileであれば、我々はBundler.require
を使用するのではなく、
手動でそのGemをrequireするようにアドバイスすることでしょう。
(特に、Gemfile内に:require
指定子を置く必要がある場合)
巨大なGemfileの場合、Bundler.require
を使用することで、
多くのrequireを繰り返し指定することを省くことが出来ます。
© 2010 - 2017 STUDIO KINGDOM