Docs header transparent bg

Ruby でバンドラーを使用する方法

ロードパスを構成して、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 を使用すると、大きな要件のスタックの繰り返しをスキップできます。

GitHub でこのドキュメントを編集する(エラーが発生した場合、または不足しているものがあればお知らせください)。