A cross-platform Ruby interface for getting operating system information. The name comes from the Unix 'uname' command, but this library works on MS Windows as well.
ffi 1.0 or later
gem install sys-uname
gem cert --add <(curl -Ls https://raw.githubusercontent.com/djberg96/sys-uname/main/certs/djberg96_pub.pem)
require 'sys/uname' # require 'sys-uname' works, too
# You now have Sys::Uname and Sys::Platform classes available.
# Get full information about your system
p Sys::Uname.uname
# Check individual platform details about your system
p Sys::Platform.linux? # => true
p Sys::Platform::ARCH # => :x86_64
Users on BSD platforms get the extra Uname.model
method.
HP-UX users get the extra Uname.id_number
method. This is actually a
String, not a Fixnum, because that's how it's defined in the utsname
struct.
The C version for Windows has been completely scrapped in favor of an OLE
plus WMI approach. It is pure Ruby. Please see the MSDN documentation for
the Win32_OperatingSystem
class for a complete list of what each of the
UnameStruct members mean.
This was added both as a nicer way to check simple information about your system, and as a replacement for the old 'Platform' gem which is no longer maintained.
I may dump the "Uname" portion of this library, and rename the project to just sys-platform.
For more details, see the 'uname.rdoc' file under the 'doc' directory.