Reputation: 1977
I have set up RVM and made individual gemsets for my projects as per the RVM best practices. Now running a test file in TextMate dosen't work and I have read here what to do. The problem is that it won't work because the guide expects me to have just one gemset (they call it "Rails3"). I normally have 2-3 projects open at a time (using different gemsets) so I can't effectively use this approach.
Have any of you solved that problem?
Upvotes: 6
Views: 940
Reputation: 12066
I've found this solution which is even simpler. Under the TextMate Preferences - Advanced - Shell Variables:
Set your GEM_HOME:
env | grep GEM_HOME | awk '{ sub(/GEM_HOME=/, ""); print }'
Set your GEM_PATH:
env | grep GEM_PATH | awk '{ sub(/GEM_PATH=/, ""); print }'
Upvotes: 0
Reputation: 132922
I've found the RVM wrappers method to be very buggy, and as you've discovered it doesn't work at all with gemsets unless you do a lot of tedious setup.
I've had some success using the following script as TM_RUBY
:
#!/bin/bash
base_dir=${TM_PROJECT_DIRECTORY:-$PWD}
cd $base_dir
exec $MY_RUBY_HOME/bin/ruby $*
As long as you're in a TextMate project and you have a .rvmrc
file in the project root it will run your code in the Ruby version and gemset specified in the .rvmrc
. The cd
makes sure RVM discovers the .rvmrc
.
Put the code above into ~/bin/textmate_ruby_wrapper
and then go to Preferences > Advanced > Shell Variables and set TM_RUBY
to that same path.
Upvotes: 12