Мне нужно выложить на процесс при настройке переменной окружения для него. Я попробовал этот однострочник:
system "RBENV_VERSION=system ruby extconf.rb"
Этот синтаксис работает в сценарии оболочки, но не в ruby. ( Обновление: , в конце концов, этот синтаксис работает от ruby, но я не смог увидеть его эффект из-за моих особенностей потребительная случай.)
Итак, я делаю это:
rbenv_version = ENV['RBENV_VERSION']
ENV['RBENV_VERSION'] = 'system'
begin
system "ruby extconf.rb"
ensure
ENV['RBENV_VERSION'] = rbenv_version
end
Я вынужден использовать такое длинное выражение, потому что не хочу постоянно переопределять переменную среды, если она уже имеет значение.
Что-нибудь более короткое, что приходит на ум?