如何找到我的Ruby程序正在运行的操作系统?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (43)

我希望我的Ruby程序在Mac上做与Windows上不同的事情。如何才能知道我的程序运行在哪个系统上?

提问于
用户回答回答于

三选一

irb(main):002:0> require 'rbconfig'
=> true
irb(main):003:0> Config::CONFIG["arch"]
=> "i686-linux"
irb(main):004:0> RUBY_PLATFORM
=> "i686-linux"
用户回答回答于

使用RUBY_PLATFORM常量,并可选择地将其封装在模块中,以使其更友好:

module OS
  def OS.windows?
    (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
  end

  def OS.mac?
   (/darwin/ =~ RUBY_PLATFORM) != nil
  end

  def OS.unix?
    !OS.windows?
  end

  def OS.linux?
    OS.unix? and not OS.mac?
  end
end

它并不完美,但对于我开发的平台来说,它很好用,而且很容易扩展。

扫码关注云+社区