tengo que pagar a un proceso al establecer una variable de entorno para ello. He intentado esto de una sola línea:Shell fuera de rubí al establecer una variable de entorno
system "RBENV_VERSION=system ruby extconf.rb"
Esta sintaxis funciona en el script de shell, pero no de rubí. (Actualización:. resulta esta sintaxis funciona de rubí, después de todo, pero no pudo ver su efecto debido a mi caso de uso particular)
Así que estoy haciendo esto:
rbenv_version = ENV['RBENV_VERSION']
ENV['RBENV_VERSION'] = 'system'
begin
system "ruby extconf.rb"
ensure
ENV['RBENV_VERSION'] = rbenv_version
end
Me veo forzado a una expresión tan larga porque no quiero anular la variable de entorno de forma permanente si ya tenía un valor.
Algo más corto que viene a la mente?
You da man. \ o/ – mislav
Esta es una gran respuesta. La documentación para ['Kernel # system'] (http://ruby-doc.org/core-1.9.3/Kernel.html#method-i-system) no es suficientemente clara en esta funcionalidad. Muy agradable. – Phrogz
Para ruby 1.8, mira POSIX :: Spawn de @ rtomayko, vinculado en otro comentario. – alxndr