Ruby Shell
#52 Compare This branch is 373 commits ahead of sdague:master.
Latest commit 2646c0d Sep 21, 2016 @mvidner Releasing version 0.13.0.
Failed to load latest commit information.
doc Don't call introspect unnecessarily: doc, examples, spec (#28). Sep 21, 2016
lib Test 0, 1, 2, introspect calls. Sep 21, 2016
package Releasing version 0.13.0. Sep 21, 2016
spec Test 0, 1, 2, introspect calls. Sep 21, 2016
.coveralls.yml use coveralls for on-line code coverage reporting at Travis CI Feb 5, 2014
.gitignore Use a regular Gemfile; Enable RuboCop in Travis Sep 12, 2016
.rubocop.yml Removed obsolete method Message#unmashall Sep 16, 2016
COPYING Switch license to LGPL. Apr 25, 2007
Gemfile Declare development dependencies in gemfile Sep 17, 2016
HOWTO-RELEASE Releasing version 0.13.0. Sep 21, 2016 Require ruby 2.0.0, stopped supporting 1.9.3. Sep 12, 2016
Rakefile Fixup RPM for renamed news file. Sep 21, 2016
VERSION Releasing version 0.13.0. Sep 21, 2016

Ruby D-Bus

D-Bus is an interprocess communication mechanism for Linux. Ruby D-Bus is a pure Ruby library for writing clients and services for D-Bus.

Gem Version Build Status Dependency Status Code Climate Coverage Status


Check whether the system is on battery power via UPower

require "dbus"
sysbus = DBus.system_bus
upower_service   = sysbus["org.freedesktop.UPower"]
upower_object    = upower_service["/org/freedesktop/UPower"]
upower_interface = upower_object["org.freedesktop.UPower"]
on_battery       = upower_interface["OnBattery"]
if on_battery
  puts "The computer IS on battery power."
  puts "The computer IS NOT on battery power."


  • Ruby 2.0 or newer.


  • gem install ruby-dbus


Ruby D-Bus currently supports the following features:

  • Connecting to local buses.
  • Accessing remote services, objects and interfaces.
  • Invoking methods on remote objects synchronously and asynchronously.
  • Catch signals on remote objects and handle them via callbacks.
  • Remote object introspection.
  • Walking object trees.
  • Creating services and registering them on the bus.
  • Exporting objects with interfaces on a bus for remote use.
  • Rubyish D-Bus object and interface syntax support that automatically allows for introspection.
  • Emitting signals on exported objects.


See some of the examples in the examples/ subdirectory of the tarball. Also, check out the included tutorial (in Markdown format) in doc/ or view it online on .


Ruby D-Bus is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.