Skip to content
/ os Public
forked from rdp/os

The OS gem allows for some easy telling if you’re on windows or not. OS.windows? as well as some other helper utilities

License

Notifications You must be signed in to change notification settings

mccarrmb/os

This branch is 2 commits ahead of, 53 commits behind rdp/os:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e379f02 · Aug 3, 2018
May 14, 2011
Aug 3, 2018
May 19, 2017
May 14, 2011
May 14, 2011
May 14, 2011
Jan 23, 2017
May 18, 2017
May 18, 2017
Feb 17, 2012
Sep 14, 2012
Oct 18, 2017
Feb 20, 2017
Oct 18, 2017

Repository files navigation

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

  require 'os'

  >> OS.windows?
  => true   # or OS.doze?

  >> OS.bits
  => 32

  >> OS.java?
  => 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 OS.report
  ==> # 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)

>> OS::Underlying.windows?
=> true # true for cygwin or MRI, whereas OS.windows? 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 :)

github.com/rdp/os for feedback et al

Related projects:

rubygems:

Gem::Platform.local
Gem.ruby
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'
Platform.local

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

FFI::Platform::OS

http://rubydoc.info/github/ffi/ffi/master/FFI/Platform

License: MIT (see LICENSE file)

About

The OS gem allows for some easy telling if you’re on windows or not. OS.windows? as well as some other helper utilities

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%