class DBus::Method
D-Bus interface method class¶ ↑
This is a class representing methods that are part of an interface.
Attributes
rets[R]
@return [Array<FormalParameter>] The list of return values for the method
Public Class Methods
new(name)
click to toggle source
Creates a new method interface element with the given name.
Calls superclass method
DBus::InterfaceElement.new
# File lib/dbus/introspect.rb, line 184 def initialize(name) super(name) @rets = [] end
Public Instance Methods
add_return(name, signature)
click to toggle source
Add a return value name and signature. @param name [#to_s] @param signature [SingleCompleteType]
# File lib/dbus/introspect.rb, line 192 def add_return(name, signature) @rets << FormalParameter.new(name, signature) end
from_prototype(prototype)
click to toggle source
Add parameter types by parsing the given prototype. @param prototype [Prototype]
# File lib/dbus/introspect.rb, line 198 def from_prototype(prototype) prototype.split(/, */).each do |arg| arg = arg.split(" ") raise InvalidClassDefinition if arg.size != 2 dir, arg = arg if arg =~ /:/ arg = arg.split(":") name, sig = arg else sig = arg end case dir when "in" add_fparam(name, sig) when "out" add_return(name, sig) end end self end
to_xml()
click to toggle source
Return an XML string representation of the method interface elment. @return [String]
# File lib/dbus/introspect.rb, line 222 def to_xml xml = " <method name=\"#{@name}\">\n" @params.each do |param| name = param.name ? "name=\"#{param.name}\" " : "" xml += " <arg #{name}direction=\"in\" type=\"#{param.type}\"/>\n" end @rets.each do |param| name = param.name ? "name=\"#{param.name}\" " : "" xml += " <arg #{name}direction=\"out\" type=\"#{param.type}\"/>\n" end xml += " </method>\n" xml end