# 이 gem들은 :default 그룹에 포함됩니다. gem 'nokogiri' gem 'sinatra' gem 'wirble', :group => :development group :test do gem 'faker' gem 'rspec' end group :test, :development do gem 'capybara' gem 'rspec-rails' end gem 'cucumber', :group => [:cucumber, :test]
$ bundle install --without test development
Bundler.require(:default, :development)
Bundler.require(:default, Rails.env)
require 'rubygems' require 'bundler' Bundler.setup(:default, :ci) require 'nokogiri'자세한 내용은: Bundler.setup
mysql2
나 pg
를
사용할 경우가 있습니다. 이 경우, 아마도 개발 환경에는 MySQL이나 Postgres가
안 깔려 있고 번들러에서 이를 생략하길 원할 것입니다.
이렇게 하려면, 의존성을 그룹지으면 됩니다.
source 'https://rubygems.org' gem 'rails', '3.2.2' gem 'rack-cache', :require => 'rack/cache' gem 'nokogiri', '~> 1.4.2' group :development do gem 'sqlite3' end group :production do gem 'pg' end
production
그룹을 무시하도록 지시할 수 있습니다.
$ bundle install --without production
--without production
을 사용하여 설치한 것을 기억합니다.
호기심이 많은 독자를 위해 말하자면, 번들러는 APP_ROOT/.bundle/config
에
플래그를 저장합니다. 모든 저장된 번들러의 옵션을 확인하고 싶으시면,
bundle config
을 실행하시면 됩니다. 이 명령어는
(~/.bundle/config
안에 저장된) 전역 설정과 환경변수에 의한 설정도 출력합니다.
번들러 설정에 관한 더 자세한 정보는 밑의 링크를 확인해 주세요.
bundle config
나중에 bundle install
을 플래그 없이 실행 한다면, 번들러는 전에 부른
bundle install --without production
명령어를 기억해 두었다가 이 플래그를
다시 사용합니다. require 'bundler/setup'
할 때, 번들러는 그 그룹의 gem을
무시합니다.
매개변수를 통해 Bundler.require
에 사용할 그룹을 자동으로 지정하게 할 수도
있습니다. :default
그룹은 어떤 그룹에도 포함되지 않은 모든 gem을 가리킵니다.
Bundler.require(:default, :development)
를 불렀다면, 번들러는
:default
그룹의 모든 gem과 :development
그룹의 모든 gem을
require
합니다.
기본 값으로, 레일스는 application.rb
에서
Bundler.require(:default, Rails.env)
를 부르는 애플리케이션을 생성합니다.
Rails.env
는 Gemfile
안의 그룹을 레일스 환경과 연결합니다.
레일스 환경과 연결되지 않은 다른 그룹을 사용한고 자동으로 요청(require)하길 원한다면,
Bundler.require
를 부름으로써 그 그룹을 추가할 수 있습니다.
Bundler.require
에서 gem 그룹을 제외하고 루비의 require
를 이용해
적당한 곳에서 수동으로 요청할 수도 있다는 것을 기억하세요.
아마도 특정 gem을 사용하는데 시간이 걸리거나, 부팅할 때마다 로드할 필요 없는 경우에 이 방법을
사용할 수 있습니다.