我想让我的Ruby程序在Mac和Windows上做不同的事情。我怎样才能找出我的程序在哪个系统上运行?
发布于 2008-10-04 21:17:49
使用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
def OS.jruby?
RUBY_ENGINE == 'jruby'
end
end
它并不完美,但在我进行开发的平台上工作得很好,而且很容易扩展。
发布于 2008-10-04 20:41:58
任一
irb(main):002:0> require 'rbconfig'
=> true
irb(main):003:0> Config::CONFIG["arch"]
=> "i686-linux"
或
irb(main):004:0> RUBY_PLATFORM
=> "i686-linux"
发布于 2012-10-17 23:22:09
require 'rbconfig'
include Config
case CONFIG['host_os']
when /mswin|windows/i
# Windows
when /linux|arch/i
# Linux
when /sunos|solaris/i
# Solaris
when /darwin/i
#MAC OS X
else
# whatever
end
https://stackoverflow.com/questions/170956
复制相似问题