Class: DBus::Wrapper::Bus

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-dbus-wrapper/bus.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connection) ⇒ Bus

Returns a new instance of Bus.



6
7
8
# File 'lib/ruby-dbus-wrapper/bus.rb', line 6

def initialize(connection)
  @connection = connection
end

Instance Attribute Details

#connectionObject (readonly)

Returns the value of attribute connection.



4
5
6
# File 'lib/ruby-dbus-wrapper/bus.rb', line 4

def connection
  @connection
end

Instance Method Details

#method_call(destination, path, interface, member, params = nil, &callback) ⇒ Object

Raises:

  • (ArgumentError)


24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 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) ⇒ Object

Raises:

  • (ArgumentError)


11
12
13
14
15
16
17
18
19
20
21
# 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