这个问题已经在这里有一个答案:
- 我如何才能找到我的Ruby程序运行在哪个操作系统? 10个回答
有没有一种方法来检测操作系统的红宝石? 我正在开发一个SketchUp的工具,将需要检测的Mac与Windows的。
这个问题已经在这里有一个答案:
有没有一种方法来检测操作系统的红宝石? 我正在开发一个SketchUp的工具,将需要检测的Mac与Windows的。
您可以使用os
的宝石:
gem install os
然后
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.
请参阅: https://github.com/rdp/os
这是我最近看过的最好的一个。 距离硒。 我认为这是最好的原因是它使用了对MRI和JRuby工作的优势rbconfig host_os场。 RUBY_PLATFORM会说在JRuby的Java“,无论它是在运行主机操作系统。 您将需要适度调整这个方法:
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
您可以使用
puts RUBY_PLATFORM
irb(main):001:0> RUBY_PLATFORM
=> "i686-linux"
但是@Pete是正确的。
您可以检查RUBY_PLATFORM不变,但是这被称为是在某些情况下,运行JRuby时如不可靠的。 其他选项包括捕获的输出uname -a
上POSIX系统命令,或使用检测宝石如SYS-UNAME 。