# File soap/rpc/driver.rb, line 27
def __attr_proxy(symbol, assignable = false)
name = symbol.to_s
define_method(name) {
@proxy.__send__(name)
}
if assignable
aname = name + '='
define_method(aname) { |rhs|
@proxy.__send__(aname, rhs)
}
end
end
# File soap/rpc/driver.rb, line 108
def initialize(endpoint_url, namespace = nil, soapaction = nil)
@namespace = namespace
@soapaction = soapaction
@options = setup_options
@wiredump_file_base = nil
@proxy = Proxy.new(endpoint_url, @soapaction, @options)
end
# File soap/rpc/driver.rb, line 147
def add_document_method(name, soapaction, req_qname, res_qname)
param_def = SOAPMethod.create_doc_param_def(req_qname, res_qname)
@proxy.add_document_method(soapaction, name, param_def)
add_document_method_interface(name, param_def)
end
# File soap/rpc/driver.rb, line 158
def add_document_operation(soapaction, name, param_def, opt = {})
@proxy.add_document_operation(soapaction, name, param_def, opt)
add_document_method_interface(name, param_def)
end
#add_method is for shortcut of typical rpc/encoded method definition.
# File soap/rpc/driver.rb, line 122
def add_rpc_method(name, *params)
add_rpc_method_with_soapaction_as(name, name, @soapaction, *params)
end
# File soap/rpc/driver.rb, line 126
def add_rpc_method_as(name, name_as, *params)
add_rpc_method_with_soapaction_as(name, name_as, @soapaction, *params)
end
# File soap/rpc/driver.rb, line 130
def add_rpc_method_with_soapaction(name, soapaction, *params)
add_rpc_method_with_soapaction_as(name, name, soapaction, *params)
end
# File soap/rpc/driver.rb, line 134
def add_rpc_method_with_soapaction_as(name, name_as, soapaction, *params)
param_def = SOAPMethod.create_rpc_param_def(params)
qname = XSD::QName.new(@namespace, name_as)
@proxy.add_rpc_method(qname, soapaction, name, param_def)
add_rpc_method_interface(name, param_def)
end
# File soap/rpc/driver.rb, line 153
def add_rpc_operation(qname, soapaction, name, param_def, opt = {})
@proxy.add_rpc_operation(qname, soapaction, name, param_def, opt)
add_rpc_method_interface(name, param_def)
end
# File soap/rpc/driver.rb, line 176
def call(name, *params)
set_wiredump_file_base(name)
@proxy.call(name, *params)
end
# File soap/rpc/driver.rb, line 76
def httpproxy
options["protocol.http.proxy"]
end
# File soap/rpc/driver.rb, line 80
def httpproxy=(httpproxy)
options["protocol.http.proxy"] = httpproxy
end
# File soap/rpc/driver.rb, line 72
def inspect
"#<#{self.class}:#{@proxy.inspect}>"
end
# File soap/rpc/driver.rb, line 163
def invoke(headers, body)
if headers and !headers.is_a?(SOAPHeader)
headers = create_header(headers)
end
set_wiredump_file_base(body.elename.name)
env = @proxy.invoke(headers, body)
if env.nil?
return nil, nil
else
return env.header, env.body
end
end
# File soap/rpc/driver.rb, line 116
def loadproperty(propertyname)
unless options.loadproperty(propertyname)
raise LoadError.new("No such property to load -- #{propertyname}")
end
end
# File soap/rpc/driver.rb, line 92
def mandatorycharset
options["protocol.mandatorycharset"]
end
# File soap/rpc/driver.rb, line 96
def mandatorycharset=(mandatorycharset)
options["protocol.mandatorycharset"] = mandatorycharset
end
# File soap/rpc/driver.rb, line 84
def wiredump_dev
options["protocol.http.wiredump_dev"]
end
# File soap/rpc/driver.rb, line 88
def wiredump_dev=(wiredump_dev)
options["protocol.http.wiredump_dev"] = wiredump_dev
end