# 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
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please see Improve the docs, or visit Documenting-ruby.org.