# class DBus::Method

# D-Bus interface method class¶ ↑

This is a class representing methods that are part of an interface.

### Attributes

rets[R]

The list of return values for the method. Array: `FormalParameter`

### 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
    136 def initialize(name)
    137   super(name)
    138   @rets = []
    139 end

### Public Instance Methods

add_return(name, signature) click to toggle source

Add a return value name and signature.

        # File lib/dbus/introspect.rb
    142 def add_return(name, signature)
    143   @rets << FormalParameter.new(name, signature)
    144 end

from_prototype(prototype) click to toggle source

Add parameter types by parsing the given prototype.

        # File lib/dbus/introspect.rb
    147 def from_prototype(prototype)
    148   prototype.split(/, */).each do |arg|
    149     arg = arg.split(" ")
    150     raise InvalidClassDefinition if arg.size != 2
    151     dir, arg = arg
    152     if arg =~ /:/
    153       arg = arg.split(":")
    154       name, sig = arg
    155     else
    156       sig = arg
    157     end
    158     case dir
    159     when "in"
    160       add_fparam(name, sig)
    161     when "out"
    162       add_return(name, sig)
    163     end
    164   end
    165   self
    166 end

to_xml() click to toggle source

Return an XML string representation of the method interface elment.

        # File lib/dbus/introspect.rb
    169 def to_xml
    170   xml = %(<method name="#{@name}">\n)
    171   @params.each do |param|
    172     name = param.name ? %(name="#{param.name}" ) : ""
    173     xml += %(<arg #{name}direction="in" type="#{param.type}"/>\n)
    174   end
    175   @rets.each do |param|
    176     name = param.name ? %(name="#{param.name}" ) : ""
    177     xml += %(<arg #{name}direction="out" type="#{param.type}"/>\n)
    178   end
    179   xml += %(</method>\n)
    180   xml
    181 end