TextMate,rvm和TM_RUBY

时间:2010-11-30 19:57:27

标签: ruby textmate rvm

TextMate RVM instructions文本中,它将TM_RUBY设置为/Users/wayne/.rvm/bin/textmate_ruby,而the image显示设置为rvm-auto-ruby。我决定将它设置为rvm-auto-ruby,认为它将使用RVM的默认Ruby版本。

Command R设置为TM_RUBY的RSpec.bundle中运行rvm-auto-ruby会产生load error。当您将其设置为textmate_ruby时,它可以正常工作。

这里唯一的问题是TextMate并不总是使用默认版本的Ruby,因为它在该文件中是硬编码的。

/Users/jspooner/.rvm/bin/textmate_ruby

#!/usr/bin/env bash

if [[ -s "/Users/jspooner/.rvm/environments/ruby-1.9.2-head" ]] ; then
  source "/Users/jspooner/.rvm/environments/ruby-1.9.2-head"
  exec ruby "$@"
else
  echo "ERROR: Missing RVM environment file: '/Users/jspooner/.rvm/environments/ruby-1.9.2-head'" >&2
  exit 1
fi

所以有两个问题:

  1. TM_RUBY=rvm-auto-ruby实际应该做什么?
  2. 有没有办法让TextMate使用RVM默认值?

2 个答案:

答案 0 :(得分:10)

将TM_RUBY设置为your-path/rvm-auto-ruby

http://rvm.io/integration/textmate/

应加载位于项目中的.rvmrc文件中指示的任何ruby和gemset,如果没有默认为rvm default。我刚刚开始工作,非常顺利。我确实需要获得最新版本的rvm

rvm get head

使其工作并重新启动Textmate。希望有所帮助。

答案 1 :(得分:7)

查看您的其他类似问题Rspec bundle is broken in TextMate and rvm


为了帮助其他人追逐同样的问题,解决方案似乎位于:RVM / Textmate doesnt recognize .rvmrc Options

基本上,您将~/.rvm/bin/textmate_ruby软链接替换为文件。这就是我所做的:

  1. cd ~/.rvm/bin
  2. mv textmate_ruby old.textmate_ruby
  3. 使用以下内容在同一目录中创建名为textmate_ruby的shell脚本以替换软链接:
    
    

    !/usr/bin/env sh

    source ~/.rvm/scripts/rvm cd . exec ruby "$@"
  4. chmod +x textmate_ruby
  5. 在进行此更改之前,如果我使用 CMD + R 在TextMate中运行以下脚本,我会看到我的系统Ruby版本(1.8.7):< / p>

    puts RUBY_VERSION
    

    使用 CMD评估脚本 + CNTRL + SHIFT + E 给了我1.9.2。

    切换到使用该脚本后,都指向Ruby 1.9.2,所以至少现在有一些一致性。我没有看到TextMate跟踪我当前设置的RVM Ruby版本;相反,它使用RVM中设置的默认版本:rvm use 1.9.2 --default。这仍然向前迈进了一步,因为我可以通过调整--default来控制Ruby TextMate使用的内容。

    如果您决定稍后恢复,只需重命名或删除脚本并反转上面的步骤2.