TextMate, rvm и TM_RUBY

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

При запуске 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 по умолчанию?

person jspooner    schedule 30.11.2010    source источник


Ответы (2)


См. ваш другой аналогичный вопрос Пакет Rspec не работает в TextMate и rvm< /а>.


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

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

  1. cd ~/.rvm/bin
  2. mv textmate_ruby old.textmate_ruby
  3. Create a shell script called textmate_ruby in the same directory to replace the soft-link, using the following contents:
    
    

    !/usr/bin/env ш

    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 выше в обратном порядке.

person the Tin Man    schedule 01.12.2010
comment
Спасибо, это сработало. Мне также пришлось удалить переменную оболочки PATH из TextMate. Не уверен, как это взаимодействовало или почему я поместил его туда раньше (не могу вспомнить), но удаление помогло. - person Brian Armstrong; 09.05.2012

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

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

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

rvm get head

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

person tek_yogi    schedule 16.07.2011
comment
Да, ты прав. Этот пост довольно старый, и с тех пор я использую этот метод. - person jspooner; 17.07.2011
comment
Вы также можете добавить /Users/username/.rvm/bin к своему TextMate PATH, а затем просто использовать rvm-auto-ruby как TM_RUBY - person Patrick Oscity; 06.10.2012
comment
это не помогает с исполняемыми файлами драгоценных камней, хотя - person Michael Johnston; 01.12.2014