2011-06-29 9 views
7

Necesito determinar en qué entorno se está ejecutando mi script de ruby ​​para poder eliminar archivos y limpiar directorios después de la ejecución.Ruby Cómo determinar el entorno de ejecución

Intenté usar ENV['os'] pero estoy usando cygwin y me dio Windows NT, ¿Alguien sabe una manera de encontrar el entorno actual?

Gracias

Respuesta

1

He usado la gema 'OS' que se puede encontrar aquí: http://rubygems.org/gems/os

No he probado con cygwin, pero yo reemplazo mi propio uso de la variable de entorno de hash con eso.

+0

Esta pregunta también resuelve su problema. http://stackoverflow.com/questions/170956/ruby-how-can-i-find-out-on-which-system-my-program-is-running – Ryanmt

+0

gracias, echaré un vistazo a gem 'os' –

+0

os la gema funciona maravillosamente. Podemos hacer cosas como 'OS :: windows?' 'OS :: linux?' – rpattabi

7

El entorno actual es proporcionada por el mundial constante RUBY_PLATFORM

rubí invocada en la cáscara del golpe cygwin (/ usr/bin/rubí):

puts RUBY_PLATFORM 
i386-cygwin 

rubí invoca en el símbolo (c: \ Ruby193 \ bin \ ruby.exe):

puts RUBY_PLATFORM 
i386-mingw32 

puts ENV['OS'] para ambos de los anteriores retornos de entorno: Windows_NT

3

el sistema operativo actual se puede obtener de RUBY_PLATFORM

puts RUBY_PLATFORM 
X86_64-linux 

Sin embargo, cuando uso ENV [ 'os'] en la máquina Linux, Ruby devuelve nil.

Cuestiones relacionadas