class XMLRPC::Service::BasicInterface

Base class for XMLRPC::Service::Interface definitions, used by XMLRPC::BasicServer#add_handler

Attributes

methods[R]
prefix[R]

Public Class Methods

new(prefix) click to toggle source
# File lib/xmlrpc/utils.rb, line 72
def initialize(prefix)
  @prefix = prefix
  @methods = []
end

Public Instance Methods

add_method(sig, help=nil, meth_name=nil) click to toggle source
# File lib/xmlrpc/utils.rb, line 77
def add_method(sig, help=nil, meth_name=nil)
  mname = nil
  sig = [sig] if sig.kind_of? String

  sig = sig.collect do |s|
    name, si = parse_sig(s)
    raise "Wrong signatures!" if mname != nil and name != mname
    mname = name
    si
  end

  @methods << [mname, meth_name || mname, sig, help]
end

Private Instance Methods

parse_sig(sig) click to toggle source
# File lib/xmlrpc/utils.rb, line 93
def parse_sig(sig)
  # sig is a String
  if sig =~ /^\s*(\w+)\s+([^(]+)(\(([^)]*)\))?\s*$/
    params = [$1]
    name   = $2.strip
    $4.split(",").each {|i| params << i.strip} if $4 != nil
    return name, params
  else
    raise "Syntax error in signature"
  end
end