Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

>> OS::Underlying.docker?
=> false # true if running inside a Docker container

>> pp OS.parse_os_release
==> # A hash of details on the current Linux distro (or an exception if not Linux)
{:NAME=>"Ubuntu",
 :VERSION=>"18.04.4 LTS (Bionic Beaver)",
 :ID=>"ubuntu",
 :ID_LIKE=>"debian",
 :PRETTY_NAME=>"Ubuntu 18.04.4 LTS",
 :VERSION_ID=>"18.04",
 :HOME_URL=>"https://www.ubuntu.com/",
 :SUPPORT_URL=>"https://help.ubuntu.com/",
 :BUG_REPORT_URL=>"https://bugs.launchpad.net/ubuntu/",
 :PRIVACY_POLICY_URL=>
  "https://www.ubuntu.com/legal/terms-and-policies/privacy-policy",
 :VERSION_CODENAME=>"bionic",
 :UBUNTU_CODENAME=>"bionic"}

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

http://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

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

Packages

No packages published

Languages