로드 경로를 설정해 Gemfile의 모든 의존성을
require할 수 있게 하기
require 'rubygems'
require 'bundler/setup'
require 'nokogiri'
로드 경로에 특정 그룹의 gem만을 추가합니다.
기본 그룹의 gem도 넣고 싶다면, 포함시킬 필요가
있습니다.
require 'rubygems'
require 'bundler'
Bundler.setup(:default, :ci)
require 'nokogiri'
자세한 내용은: 그룹
루비 2.0과 RubyGems 2.0 둘 다 번들러 1.3 이후의 버전이 필요합니다. 번들러와 시스템의 호환성이 궁금하시다면, 호환성 목록을 확인하세요.
자세한 내용은: 호환성
번들러를 사용해 애플리케이션 설정하기
번들러는 루비가
Gemfile
안의 모든 gem(과 거기에 의존하는 모든 gem)을 찾을
수 있는지 확인합니다. 애플리케이션이 레일스 3 애플리케이션이라면 번들러를 호출하기 위한
코드가 기본으로 포함되어 있습니다. 레일스 2.3 애플리케이션이라면 다음 링크를 확인하세요.
번들러를 레일스 2.3과 사용하기
시나트라 같은 다른 종류의 애플리케이션에선 gem을 require하기 전에 번들러를 설정할 필요가
있습니다. 애플리케이션에서 처음 로드되는 파일(시나트라에서는 require
'sinatra'
를 호출하는 파일)의 제일 윗부분에 다음 코드를 넣으세요.
require 'rubygems'
require 'bundler/setup'
이렇게 하면 Gemfile
을 찾아, Gemfile
의 모든 gem을 루비에서
사용가능하게 만들어 줍니다.(기술적인 관점에서 보면 로드 경로에 gem을 넣어 줍니다.)
require 'rubygems'
에 추가적인 기능을 부여한다고 생각하셔도 됩니다.
이제 코드가 루비에서 사용가능하므로, 필요한 gem을 require 할 수 있습니다. 예를 들어
require 'sinatra'
를 할 수 있습니다. 많은 의존성을 가지고 있다면
"Gemfile
안의 모든 의존성을 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'
인 것을 눈치채셨을
것입니다. 번들러가 require 'rack/cache'
를 사용하도록 하려면 Gemfile을
고치세요.
source 'https://rubygems.org'
gem 'rails', '3.0.0.rc'
gem 'rack-cache', :require => 'rack/cache'
gem 'nokogiri', '~> 1.4.2'
작은 Gemfile
은 Bundler.require
를 사용하지 않고 직접 require
하는 걸 추천합니다.(Gemfile
안에 :require
를 넣어야 한다면 더더욱)
큰 Gemfile
은 Bundler.require
해서 많은 요구사항을 반복적으로
입력하지 않을 수 있습니다.