# 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 73
    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 78
    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 94
    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