For the last few months before I stopped doing Ruby full time I was using a workflow (on OS X) in which I downloaded a binary Ruby build (the one rvm uses when you do "rvm install --binary" on OS X) and extracted it to "/opt/rubies/2.1.0". I created a script called "activate" that exports the environment variables necessary to run Ruby and placed it under "bin".<p>Then for each project I would copy the entire ruby installation to my project root in a folder called "vruby". To load ruby for that project I would run "source vruby/bin/activate". It would setup all the environment variables with GEM_HOME pointing to a ".gem" folder under the project's root. Therefore gems are isolated to each project. To unload, I just close the terminal.<p>The vruby project automates this workflow, by installing a binary ruby using Traveling Ruby and symlinking it to the local project using GNU stow. The plan is to eventually support multiple Ruby versions and more platforms than just my Linux box. Unfortunately, I no longer do Ruby full time and don't have the bandwidth to make it as robust as I'd like. If you like this solution and need help setting it up, don't be afraid to get in touch.