Ruby gemfile
From wikinotes
Gemfiles associate gem requirements with the source they will be pulled down from.
NOTE:
you can also configure requirements in a gemspec file
Documentation
gemfile quickstart https://bundler.io/gemfile.html gemfile manual https://bundler.io/man/gemfile.5.html
Example
## ~/src/yourproject/Gemfile source 'https://rubygems.org' do # :default group gem 'rake' gem 'thor' group :testing do gem 'fake', '1.1.1' gem 'rspec', '~>1.1' # 1.1+<2 end end
Sources
You may specify multiple source blocks, or define a source for each gem individually.
# source block source 'your.repo.com' do gem 'foo' gem 'bar' end# inline source gem 'baz', '1.0.0', :source => 'https://your.other.repo.com'# git source gem 'nokogiri', :git => 'https://github.com/tenderlove/nokogiri.git', :branch => '1.4'# filesystem source (extracted to directory) gem 'extracted_library', :path => './vendor/extracted_library'Sources may require username/password. On each computer, configure this using
bundle config https://gems.example.com/ user:password
Groups
Gem requirements are organized into groups.
If unspecified, gems belong to:default
group.You may also specify your own groups.
source 'https://rubygems.org' do # :default group gem 'nokogiri' gem 'sinatra' # inline group inclusion gem 'wirble', group: :development gem 'cucumber', group: [:cucumber, :test] # block group inclusion group :test do gem 'faker' gem 'rspec' end group :test, :development gem 'capybara' end end
Gems
gem 'nokogiri' gem 'rails', '5.0.0' gem 'rack', '>=1.0' gem 'thin', '~>1.1' # 1.1 <= $VER < 2.0 gem 'thin', '~>1.1.0' # 1.1.0 <= $VER < 1.2 gem 'nokogiri', '>= 1.0.0', '< 2.0.0' # combine ranges
Auto-Import
You can automatically require all of the gems within a gemfile group
# include bundler/gems require 'rubygems' require 'bundler/setup' # require gems from group `:default` Bundler.require(:default)