Мне нужно запускать примеры RSpec в нескольких средах. Я хочу передать в RSpec флаг, который оператор case может отключить, чтобы установить правильные значения. Это настолько естественное желание сделать, что я, должно быть, упускаю из виду очевидное. Спасибо за помощь.
Это зависит от того, как вызывается RSpec.
В общем, я бы избегал параметров командной строки, поскольку каждая часть стека всегда конкурирует за их чтение по-своему, а семантика слишком свободна (это всего лишь последовательность символьных строк).
Простой и довольно общий механизм - это переменные среды. Большинство контекстов выполнения позволят вам легко их установить, включая службы непрерывной интеграции и, конечно же, вашу оболочку.
% FOO=hop ruby -e "puts ENV['FOO']"
hop