class DBus::ASessionBus

D-Bus session bus class

The session bus is a session specific bus (mostly for desktop use).

Use SessionBus, the non-singleton ASessionBus is for the test suite.

Public Class Methods

new() click to toggle source

Get the the default session bus.

Calls superclass method DBus::Connection.new
# File lib/dbus/bus.rb, line 731
def initialize
  super(ENV["DBUS_SESSION_BUS_ADDRESS"] || address_from_file || "launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET")
  connect
  send_hello
end

Public Instance Methods

address_from_file() click to toggle source
# File lib/dbus/bus.rb, line 737
def address_from_file
  f = File.new("/var/lib/dbus/machine-id")
  machine_id = f.readline.chomp
  f.close
  display = ENV["DISPLAY"].gsub(/.*:([0-9]*).*/, '\1')
  File.open(ENV["HOME"] + "/.dbus/session-bus/#{machine_id}-#{display}").each do |line|
    if line =~ /^DBUS_SESSION_BUS_ADDRESS=(.*)/
      return $1
    end
  end
rescue Errno::ENOENT
  nil
end