One thing I did find much easier to deal with is SOAP headers. In Soap4r I had to create an entire class just to add an element to the SOAP header. This was required for my Viewpoint project to add the RequestServerVersion element to the header. With Handsoap all I had to do was add the following to the 'on_create_document' hook:
header = doc.find('Header')
If you have programmed with Soap4r before I would encourage you to give Handsoap a try.