Gemfiles require at least one gem source, in the form of the URL for a RubyGems server. There are shortcuts for the default gem server, so all of these sources are the same.
source :rubygems source 'https://rubygems.org' source :rubyforge source 'http://gems.rubyforge.org' source :gemcutter source 'http://gemcutter.org'
Declare the gems that you need, including version numbers. Specify versions using the same syntax that RubyGems supports for dependencies.
gem 'nokogiri' gem 'rails', '3.0.0.beta3' gem 'rack', '>=1.0' gem 'thin', '~>1.1'
If a gem's main file is different than the gem name, specify how to require it.
gem 'rspec', :require => 'spec' gem 'sqlite3'
Git repositories are also valid gem sources, as long as the repo contains one or more valid gems. Specify what to check out with :tag, :branch, or :ref. The default is the master branch.
Learn more: Git
gem 'nokogiri', :git => 'https://github.com/tenderlove/nokogiri.git', :branch => '1.4' git 'https://github.com/wycats/thor.git', :tag => 'v0.13.4' gem 'thor'
If you are actively developing a gem, perhaps checked out from Github, you can use the gem directly from its directory on your filesystem.
gem 'nokogiri', :path => '~/sw/gems/nokogiri'
Dependencies can be placed into groups, to be ignored at install-time or required all at once.
Learn more: Groups
gem 'wirble', :group => :development gem 'ruby-debug', :group => [:development, :test] group :test do gem 'rspec' end