Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
System is a pure ruby interface to gather current systems information; OS, CPU, Filesystem etc...
Ruby
tree: eb872c4acc

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
.rvmrc
Gemfile
Gemfile.lock
Guardfile
LICENSE
NOTES.md
README.md
Rakefile
VERSION
system.gemspec

README.md

System

System is a pure ruby interface to gather current systems information.

About

System is a cross-platform and cross-implementation interface to gather system information from the current host.

System offers a simple to use interface to gather an array of information including; OS, CPU, Filesystem, etc.

Install

Bundler: gem 'system'

RubyGems: gem install system

Usage

require 'system'

System::Ruby.java?  # => Are we running on java?
System::Ruby.jruby? # => Are we running on jruby?
System::OS.name     # => Current OS name as a Symbol i.e. :windows, :linux, :osx, :bsd, :darwin, :solaris
System::CPU.count   # => Current number of CPUs, including individual cores

TODO

List

  • Separate OS and Implementation specific logic into loadable mixins

    i.e. require 'system/cpu' would require 'system/cpu/java' if running JRuby.

  • SPECS! Decide how to stub out system calls and replace with fixtures.

System::CPU

System::CPU[0].id                # => The first CPU's physical ID as an integer
System::CPU[0].vendor            # => The first CPU's vendor as a String
System::CPU[0].family            # => The first CPU's family as an Integer
System::CPU[0].model             # => The first CPU's model as an Integer
System::CPU[0].name              # => The first CPU's model as a String
System::CPU[0].speed             # => The first CPU's speed in MHz as a Float
System::CPU[0].cache             # => The first CPU's cache size in KB as an Integer
System::CPU[0].multi_core?       # => Does the first CPU contain multiple cores?

System::CPU::Core

System::CPU[0].cores[0]          # => The first CPU's first core as a System::CPU::Core
System::CPU[0].cores[0].id       # => The ID of the first CPU's first core as an Integer
System::CPU[0].cores[0].flags    # => An Array containing the Core's flags as Symbols
System::CPU[0].cores[0].siblings # => An Array containing the other Cores in the CPU
System::CPU[0].cores[0].siblings # => An Array containing the other Cores in the CPU
Build Status

Build Status

Contributing

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
  • Fork the project
  • Start or switch to a testing/unstable/feature/bugfix branch
  • Commit and push until you are happy with your contribution
  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
  • Please try not to mess with the Rakefile, VERSION or gemspec.

Copyright

Copyright © 2009-2012 Roja Buck and Ryan Scott Lewis.

The MIT License (MIT) - See LICENSE for further details.

Something went wrong with that request. Please try again.