class Skype::Connection

Public Class Methods

new() click to toggle source
# File lib/skype/platforms/linux.rb, line 6
def initialize
  set_dbus_session_bus_address
  @bus = DBus.session_bus
  @service = @bus.service('com.Skype.API').object('/com/Skype')
  @service.default_iface = 'com.Skype.API'
  @service.introspect
  invoke "NAME #{::Skype.config[:app_name]}"
  invoke "PROTOCOL 99"
end

Public Instance Methods

invoke(cmd) click to toggle source
# File lib/skype/platforms/linux.rb, line 16
def invoke(cmd)
  @service.Invoke(cmd)[0]
end

Private Instance Methods

set_dbus_session_bus_address() click to toggle source
# File lib/skype/platforms/linux.rb, line 21
def set_dbus_session_bus_address
  return if ENV['DBUS_SESSION_BUS_ADDRESS']
  addrs = []
  Dir.glob("#{ENV['HOME']}/.dbus/session-bus/*").each do |fname|
    File.open fname do |f|
      addrs.push f.readlines.find{|line|
        line =~ /^DBUS_SESSION_BUS_ADDRESS=/
      }.gsub(/^DBUS_SESSION_BUS_ADDRESS=/,'')
    end
  end
  ENV['DBUS_SESSION_BUS_ADDRESS'] = addrs[0]
end