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.
Example¶ ↑
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_object.introspect upower_interface = upower_object["org.freedesktop.UPower"] on_battery = upower_interface["OnBattery"] if on_battery puts "The computer IS on battery power." else puts "The computer IS NOT on battery power." end
Requirements¶ ↑
-
Ruby 2.0 or newer.
Installation¶ ↑
-
gem install ruby-dbus
Features¶ ↑
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.
Usage¶ ↑
See some of the examples in the examples/ subdirectory of the tarball. Also, check out the included tutorial (in Markdown format) in doc/Tutorial.md or view it online on github.com/mvidner/ruby-dbus/blob/master/doc/Tutorial.md .
License¶ ↑
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.