Sha256: c3b3e2b26c3871cf021f3b76e3938d1cf141c7a889b3afe6671f4dd70d1228f8
Contents?: true
Size: 963 Bytes
Versions: 5
Compression:
Stored size: 963 Bytes
Contents
# encoding: ASCII-8BIT require 'soap/rpc/driver' class ClientFilter1 < SOAP::Filter::Handler # 1 -> 2 def on_outbound(envelope, opt) param = envelope.body.root_node.inparam param["amt"] = SOAP::SOAPInt.new(param["amt"].data + 1) param["amt"].elename = XSD::QName.new(nil, 'amt') envelope end # 31 -> 32 def on_inbound(xml, opt) xml = xml.sub(/31/, '32') xml end end class ClientFilter2 < SOAP::Filter::Handler # 2 -> 4 def on_outbound(envelope, opt) param = envelope.body.root_node.inparam param["amt"] = SOAP::SOAPInt.new(param["amt"].data * 2) param["amt"].elename = XSD::QName.new(nil, 'amt') envelope end # 30 -> 31 def on_inbound(xml, opt) xml = xml.sub(/30/, '31') xml end end client = SOAP::RPC::Driver.new("http://localhost:7171", "urn:filter") client.add_method('echo', 'amt') client.filterchain << ClientFilter1.new client.filterchain << ClientFilter2.new p client.echo(1)
Version data entries
5 entries across 5 versions & 1 rubygems