Accessing SOAP service

I am trying to post a transaction to a SOAP service using the
following:

require ‘soap/wsdlDriver’

class CitymainServiceV2

def post_policy(*args)
soap = wsdl.create_rpc_driver
soap.wiredump_file_base = “soap-log.txt”
soap.wiredump_dev = STDERR
response = soap.CreateCustomer(*args)
soap.reset_stream
response
end

private
def wsdl
SOAP::WSDLDriverFactory.new(‘https://citymaintrak.com/
citymainservicev2/citymainservicev2.asmx?WSDL’)
end
end

The api documentation on soap/wsdl is not at all useful and I am
really struggling to find a relevant tutorial. I was hoping to be
able to use this library without having to go into a lot of research.
The webservice is on .net and I would like to know how to accomplish
the following:

  • I can connect to CreateCustomer but how do I specify
    MessageName=“AddCustomerPrimDataType”.
  • for the post data, currently passed into the class a *args, what am
    I meant to be sending in, a fully-constructed xml string using
    builder? Perhaps a hash with appropriate symbol keys?
  • is there a better way?

Thanks,

O.