class DBus::ProxyObjectFactory
D-Bus proxy object factory class¶ ↑
Class that generates and sets up a proxy object based on introspection data.
Public Class Methods
introspect_into(pobj, xml)
click to toggle source
Investigates the sub-nodes of the proxy object pobj based on the introspection XML data xml and sets them up recursively. @param pobj [ProxyObject] @param xml [String]
# File lib/dbus/proxy_object_factory.rb 31 def self.introspect_into(pobj, xml) 32 # intfs [Array<Interface>], subnodes [Array<String>] 33 intfs, pobj.subnodes = IntrospectXMLParser.new(xml).parse 34 intfs.each do |i| 35 poi = ProxyObjectInterface.new(pobj, i.name) 36 i.methods.each_value { |m| poi.define(m) } 37 i.signals.each_value { |s| poi.define(s) } 38 i.properties.each_value { |p| poi.define(p) } 39 pobj[i.name] = poi 40 end 41 pobj.introspected = true 42 end
new(xml, bus, dest, path, api: ApiOptions::CURRENT)
click to toggle source
Creates a new proxy object factory for the given introspection XML xml, bus, destination dest, and path.
# File lib/dbus/proxy_object_factory.rb 19 def initialize(xml, bus, dest, path, api: ApiOptions::CURRENT) 20 @xml = xml 21 @bus = bus 22 @path = path 23 @dest = dest 24 @api = api 25 end
Public Instance Methods
build()
click to toggle source
Generates, sets up and returns the proxy object.
# File lib/dbus/proxy_object_factory.rb 45 def build 46 po = ProxyObject.new(@bus, @dest, @path, api: @api) 47 ProxyObjectFactory.introspect_into(po, @xml) 48 po 49 end