ロードパスを構成して、Gemfile 内のすべての依存関係を必要となることができます
require 'bundler/setup'
require 'nokogiri'
指定されたグループからロードパスにジェムのみを追加します。デフォルトのグループのジェムが必要な場合は、確実に含まれているようにします
require 'bundler'
Bundler.setup(:default, :ci)
require 'nokogiri'
Ruby 2.0 と RubyGems 2.0 の両方にバンドラー 1.3 以降が必要です。バンドラーとシステムの互換性について質問がある場合は、互換性リストを確認してください。
バンドラーは Ruby が Gemfile
内のすべてのジェム(とその依存関係すべて)を検索できるようにします。アプリケーションが Rails アプリケーションの場合は、デフォルトのアプリケーションにバンドラーを呼び出すために必要なコードが既に含まれています。他の種類のアプリケーション(Sinatra アプリケーションなど)の場合は、ジェムを必要とする前にバンドラーを設定する必要があります。アプリケーションが読み込む最初のファイルの先頭に(Sinatra の場合は require 'sinatra'
を呼び出すファイルの先頭で)、次のコードを配置してください
require 'bundler/setup'
これで、自動的に Gemfile
が検出され、 Gemfile
内のすべてのジェムが Ruby で利用可能になります(技術的には、「ロードパスに」ジェムを配置します)。
これでコードが Ruby で利用可能になったので、必要なジェムを必要とする場合があります。たとえば、require 'sinatra'
と指定できます。多くの依存関係がある場合は、「Gemfile
内のすべてのジェムを必要とする」ことを指定したい場合があります。これを行うには、require 'bundler/setup'
の直後に次のコードを配置します
Bundler.require(:default)
例示した Gemfile では、この行は次と完全に一致します
require 'rails'
require 'rack-cache'
require 'nokogiri'
鋭い読者は、rack-cache
ジェムを必要とする正しい方法は require 'rack/cache'
であり、 require 'rack-cache'
ではないことに気付くでしょう。bandler に require 'rack/cache'
を使用するように指示するには、Gemfile を更新します
source 'https://rubygems.org'
gem 'rails', '5.0.0'
gem 'rack-cache', require: 'rack/cache'
gem 'nokogiri', '~> 1.4.2'
非常に小さな Gemfile
の場合は、 Bundler.require
をスキップして、ジェムを手動で必要とすることをお勧めします(Gemfile に :require
ディレクティブを配置する必要があることに特に注意してください)。はるかに大きな Gemfile
では、Bundler.require
を使用すると、大きな要件のスタックの繰り返しをスキップできます。