TextMate, rvm и TM_RUBY - PullRequest
       24

TextMate, rvm и TM_RUBY

5 голосов
/ 30 ноября 2010

В инструкциях TextMate RVM в тексте указано, что для TM_RUBY установлено значение /Users/wayne/.rvm/bin/textmate_ruby, а в изображении показано, что установлено значение rvm-auto-ruby. Я решил установить его на rvm-auto-ruby, думая, что он будет использовать версию RVM по умолчанию Ruby.

При запуске Command R в RSpec.bundle с TM_RUBY, установленным на rvm-auto-ruby, будет ошибка загрузки . Когда вы устанавливаете его на 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 ]

10 голосов
/ 17 июля 2011

Установка TM_RUBY на your-path/rvm-auto-ruby

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

должна загружать любые ruby ​​и gemset, указанные в файле .rvmrc, расположенном в проекте, и, если нет, по умолчанию - rvm default.Я только получил это работает, и это очень гладко.Мне нужно было получить последнюю версию rvm

rvm get head

, чтобы она заработала, и перезапустить Textmate.Надеюсь, это поможет.

7 голосов
/ 01 декабря 2010

См. Ваш другой, похожий вопрос Пакет Rspec не работает в TextMate и rvm .


Чтобы помочь другим в погоне за этой же проблемой, решение выглядит следующим образом: RVM / Textmate не распознает .rvmrc Опции .

Обычно вы заменяете программную ссылку ~/.rvm/bin/textmate_ruby на файл.Вот что я сделал:

  1. cd ~/.rvm/bin
  2. mv textmate_ruby old.textmate_ruby
  3. Создайте сценарий оболочки с именем textmate_ruby в том же каталоге, чтобы заменить программныйссылку, используя следующее содержание:
    
    <h1>!/usr/bin/env sh</h1>
    
    source ~/.rvm/scripts/rvm 
    cd . 
    exec ruby "$@" 
    
  4. chmod +x textmate_ruby

Перед внесением этого изменения я бы увидел версию моей системы Ruby (1.8.7), если я это сделал CMD + R для запуска следующего скрипта в TextMate:

puts RUBY_VERSION

Оценка скрипта с использованием CMD + CNTRL + SHIFT + E дал мне 1.9.2.

После переключения на использование этого сценария оба указали на Ruby 1.9.2, так что, по крайней мере, теперь есть некоторая согласованность.Я не вижу, чтобы TextMate отслеживал мою текущую версию RVM Ruby;Вместо этого он использует версию по умолчанию, установленную в RVM: rvm use 1.9.2 --default.Это все еще шаг вперед, потому что я могу контролировать, какой Ruby TextMate использует, настраивая мой --default.

Если вы решите, что хотите вернуться позже, просто переименуйте или удалите сценарий и отмените шаг 2 выше.

...