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)