Как я могу использовать две разные установки ruby ​​для одного проекта с файлами rvm и rvmrc? - PullRequest
3 голосов
/ 12 февраля 2012

У меня есть приложение, которое запускается и устанавливается на JRuby в производстве. Это же приложение может работать и на Ruby 1.8.7 в разработке. Как я могу использовать RVM для переключения между этими рубинами?

Я ищу .rvmrc -подобное решение, чтобы я мог сказать

rvm use .rvmrc_ruby

или

rvm use .rvmrc_jruby 

для переключения между версиями Ruby. Обычно мне нужно сделать это, чтобы протестировать одно и то же приложение на Ruby и JRuby.

Я хотел бы получить решение, в котором я мог бы зарегистрировать такие настройки в Git и запускать эти вещи без необходимости вводить версии Ruby или имена gemset каждый раз, когда мне нужно переключиться.

Ответы [ 2 ]

1 голос
/ 12 февраля 2012

сгенерируйте эти два файла и в .rvmrc напишите:

source ./.rvmrc_${TEST_WITH:-jruby}

тогда вы можете написать в вашей оболочке:

export TEST_WITH=ruby
cd .

и восстановить с помощью:

unset TEST_WITH
cd .
0 голосов
/ 12 февраля 2012

Это кажется глупым.

Во-первых, почему вы вообще потрудились запустить другой Ruby в разработке? Если это случайный тестовый запуск для обеспечения совместимости между различными Ruby, тогда все в порядке, но тогда ...

Во-вторых, все, что вы, вероятно, имеете в своем .rvmrc, это rvm use 1.8.7 или rvm use jruby - это все, что происходит при запуске файла .rvmrc. Что плохого в том, чтобы просто напечатать это в терминале? На самом деле это меньше символов, чем в приведенных вами примерах команд, и вы также получаете завершение табуляции. Если вам нужна согласованность между оболочками и вам нужно, чтобы .rvmrc отражал текущий Ruby, который вы хотите, то просто измените файл. Или, если вам действительно нужно, напишите простой скрипт, который сделает это за вас (скажем, он называется changervmrc.sh):

#!/bin/bash

echo "rvm use $1" > .rvmrc

и вызовите с помощью ./changervmrc.sh jruby. Вы можете адаптировать это, чтобы включить переключение на определенный набор гемов при необходимости.

...