ruby operating-system detection sketchup

Detección de sistemas operativos en Ruby



operating-system detection (4)

Esta pregunta ya tiene una respuesta aquí:

¿Hay alguna forma de detectar el sistema operativo en ruby? Estoy trabajando en el desarrollo de una herramienta de sketchup que necesitará detectar MAC frente a WINDOWS.


Aquí está el mejor que he visto recientemente. Es de selenio. La razón por la que creo que es la mejor es que utiliza el campo rbconfig host_os, que tiene la ventaja de trabajar en MRI y JRuby. RUBY_PLATFORM dirá ''java'' en JRuby independientemente del sistema operativo que esté ejecutando. Tendrá que modificar ligeramente este método:

require ''rbconfig'' def os @os ||= ( host_os = RbConfig::CONFIG[''host_os''] case host_os when /mswin|msys|mingw|cygwin|bccwin|wince|emc/ :windows when /darwin|mac os/ :macosx when /linux/ :linux when /solaris|bsd/ :unix else raise Error::WebDriverError, "unknown os: #{host_os.inspect}" end ) end


Puede inspeccionar la constante RUBY_PLATFORM , pero se sabe que esto no es confiable en ciertos casos, como cuando se ejecuta JRuby. Otras opciones incluyen capturar la salida del comando uname -a en sistemas POSIX, o usar una gema de detección como sys-uname .


Puedes usar

puts RUBY_PLATFORM

irb(main):001:0> RUBY_PLATFORM => "i686-linux"

Pero @Pete tiene razón.


Puedes usar la gema del os :

gem install os

Y entonces

require ''os'' OS.linux? #=> true or false OS.windows? #=> true or false OS.java? #=> true or false OS.bsd? #=> true or false OS.mac? #=> true or false # and so on.

Ver: https://github.com/rdp/os