class DBus::Wrapper::Bus

Attributes

connection[R]

Public Class Methods

new(connection) click to toggle source
# File lib/ruby-dbus-wrapper/bus.rb, line 6
def initialize(connection)
  @connection = connection
end

Public Instance Methods

method_call(destination, path, interface, member, params = nil, &callback) click to toggle source
# File lib/ruby-dbus-wrapper/bus.rb, line 24
def method_call(destination, path, interface, member, params = nil, &callback)
  raise ArgumentError, "You must specify destination" if destination.nil?
  raise ArgumentError, "You must specify path"        if path.nil?
  raise ArgumentError, "You must specify interface"   if interface.nil?
  raise ArgumentError, "You must specify member"      if member.nil?
  raise ArgumentError, "You must specify callback"    unless block_given?

  message = ::DBus::Message.new(::DBus::Message::METHOD_CALL)
  message.path        = path
  message.destination = destination
  message.interface   = interface
  message.member      = member

  if params.is_a? Array
    params.each do |param|
      message.add_param param[0], param[1]
    end
  end

  @connection.send_sync_or_async message, &callback
end
monitor_signal(sender, path, interface, member, &callback) click to toggle source
# File lib/ruby-dbus-wrapper/bus.rb, line 11
def monitor_signal(sender, path, interface, member, &callback)
  raise ArgumentError, "You must specify interface" if interface.nil?
  raise ArgumentError, "You must specify member"    if member.nil?
  raise ArgumentError, "You must specify callback"  unless block_given?

  match_string = "type='signal',interface='#{interface}',member='#{member}'"
  match_string << ",path='#{path}'" unless path.nil?
  match_string << ",sender='#{sender}'" unless sender.nil?

  @connection.add_match match_string, &callback
end