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 185 def initialize(name) 186 super(name) 187 @rets = [] 188 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 193 def add_return(name, signature) 194 @rets << FormalParameter.new(name, signature) 195 end
from_prototype(prototype)
click to toggle source
Add parameter types by parsing the given prototype. @param prototype [Prototype]
# File lib/dbus/introspect.rb 199 def from_prototype(prototype) 200 prototype.split(/, */).each do |arg| 201 arg = arg.split(" ") 202 raise InvalidClassDefinition if arg.size != 2 203 204 dir, arg = arg 205 if arg =~ /:/ 206 arg = arg.split(":") 207 name, sig = arg 208 else 209 sig = arg 210 end 211 case dir 212 when "in" 213 add_fparam(name, sig) 214 when "out" 215 add_return(name, sig) 216 end 217 end 218 self 219 end
to_xml()
click to toggle source
Return an XML string representation of the method interface elment. @return [String]
# File lib/dbus/introspect.rb 223 def to_xml 224 xml = " <method name=\"#{@name}\">\n" 225 @params.each do |param| 226 name = param.name ? "name=\"#{param.name}\" " : "" 227 xml += " <arg #{name}direction=\"in\" type=\"#{param.type}\"/>\n" 228 end 229 @rets.each do |param| 230 name = param.name ? "name=\"#{param.name}\" " : "" 231 xml += " <arg #{name}direction=\"out\" type=\"#{param.type}\"/>\n" 232 end 233 xml += " </method>\n" 234 xml 235 end