Based on ‘Raise the bar, lower the pressure’ given by Durran Jordan at ScotRubyConf 2011.
There has been some debate as to whether the project .rvmrc should be included in git. With the correct options including .rvmrc and bundler can make working on open source projects easier. I have an example on github. If you have not hear of Ruby Version Manager RVM I suggest you check it out.
An example project .rvmrc
rvm_gemset_create_on_use_flag=1 rvm 1.9.2@OpenSourceExample
The first line is really important here on first time cd’ing into the folder it creates the gemset instead of outputting a warning that it does not exist.
The second line specifies the version of ruby to use and defines the name of the gemset. Gemsets create a sandboxed gem area so that it does not pollute your global gem space.
Bundler is then used to manage the gems.
Bundler requires gem –version greater than 1.3.6, but it is a good idea to upgrade.
cd OpenSourceExample gem update --system rvm gemset global gem install bundler cd .. && cd -
Write your [gemfile][http://gembundler.com/gemfile.html]
1) With at least 1 source
2) If the gem install has a different name to require then :require has to be specified eg.
gem install sinatra-session *.rb contains require “sinatra/session”
source "http://rubygems.org" gem "sinatra", "~> 1" gem "sinatra-session", :require => 'sinatra/session' group :development do gem "sinatra-reloader", "~> 0" gem "thin", "~> 1" end group :test do gem "rspec", :require => "spec" end
Then install the gems specified and add the gemfile and Gemfile.lock to git
$ bundle install $ git add gemfile Gemfile.lock
When picking up an open source project set up like this, the workflow should just be:
$ git clone https://github.com/morganp/OpenSourceExample $ cd OpenSourceExample #Review the .rvmrc and type yes if it is safe $ bundle install