Skip to content
The OS gem allows for some easy telling if you’re on windows or not. as well as some other helper utilities
Branch: master
Clone or download
Latest commit 1454bf6 Oct 18, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
autotest autotest: default config. May 14, 2011
lib add app_config_path for determining app config location May 19, 2017
.document Fix CRLF May 14, 2011
.gitignore Fix CRLF May 14, 2011
README.rdoc add space to not confuse Sep 14, 2012
VERSION Version bump to 1.0.0 Feb 20, 2017
os.gemspec Add license to gemspec Oct 18, 2017


The OS gem allows for some easy telling if you're on windows or not.

  require 'os'

  => true   # or OS.doze?

  >> OS.bits
  => 32

  => true # if you're running in jruby.  Also OS.jruby?

  >> OS.ruby_bin
  => "c:\ruby18\bin\ruby.exe" # or "/usr/local/bin/ruby" or what not

  >> OS.posix?
  => false # true for linux, os x, cygwin

  >> OS.mac? # or OS.osx? or OS.x?
  => false

  >> OS.dev_null
  => "NUL" # or "/dev/null" depending on which platform

  >> OS.rss_bytes
  => 12300033 # number of rss bytes this process is using currently.  Basically "total in memory footprint" (doesn't include RAM used by the process that's in swap/page file)

  >> puts
  ==> # a yaml report of helpful values
  arch: x86_64-darwin10.6.0
  target_os: darwin10.6.0
  target_vendor: apple
  target_cpu: x86_64
  target: x86_64-apple-darwin10.6.0
  host_os: darwin10.6.0
  host_vendor: apple
  host_cpu: i386
  host: i386-apple-darwin10.6.0
  RUBY_PLATFORM: x86_64-darwin10.6.0

 >> OS.cpu_count  
 => 2 # number of cores, doesn't include hyper-threaded cores.

>> OS.open_file_command
=> "start" # or open on mac, or xdg-open on linux (all designed to open a file)

=> true # true for cygwin or MRI, whereas is false for cygwin

>> OS::Underlying.bsd?
=> true # true for OS X

If there are any other features you'd like, let me know, I'll do what I can to add them :) for feedback et al

Related projects:


The reason Gem::Platform.local felt wrong to me is that it treated cygwin as windows--which for most build environments, is wrong.  Hence the creation of this gem.

the facets gem (has a class similar to rubygems, above)

require 'facets/platform'

the “platform” gem, itself (a different gem)


License: MIT (see LICENSE file)

You can’t perform that action at this time.