Using RVM with different gemsets in TextMate

2019-04-08 09:15发布

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?

2条回答
孤傲高冷的网名
2楼-- · 2019-04-08 10:01

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 }'
查看更多
萌系小妹纸
3楼-- · 2019-04-08 10:08

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.

查看更多
登录 后发表回答