2011-02-09 62 views
6

我已经设置了RVM,并根据RVM best practices为我的项目制作了单独的gemset。现在在TextMate中运行测试文件不起作用,我有read here做什么。问题是,它不会工作,因为指南期望我只有一个gemset(他们称之为“Rails3”)。我通常每次打开2-3个项目(使用不同的gemset),所以我无法有效地使用这种方法。在TextMate中将RVM与不同的gemset结合使用

有没有人解决过这个问题?

回答

12

我发现RVM wrappers方法很麻烦,而且你发现它根本不能用gemsets工作,除非你做了很多繁琐的设置。

我已经使用下面的脚本一些成功为TM_RUBY

#!/bin/bash 

base_dir=${TM_PROJECT_DIRECTORY:-$PWD} 
cd $base_dir 
exec $MY_RUBY_HOME/bin/ruby $* 

只要你在TextMate的项目是和你有一个.rvmrc文件在项目的根它将运行你的代码在.rvmrc中指定的Ruby版本和gemset。 cd确保RVM发现.rvmrc

将上面的代码放入~/bin/textmate_ruby_wrapper,然后转到首选项>高级> Shell变量,并将TM_RUBY设置为相同的路径。

+0

男人,我一直在[我节省了upvotes问题](http://stackoverflow.com/badges/155/electorate),但我得花一个这个。非常好! – Phrogz 2011-02-09 19:17:47

0

我发现这个解决方案更简单。根据TextMate的首选项 - 高级 - 壳牌变量:

设置你的GEM_HOME

env | grep GEM_HOME | awk '{ sub(/GEM_HOME=/, ""); print }' 

设置你的GEM_PATH

env | grep GEM_PATH | awk '{ sub(/GEM_PATH=/, ""); print }'