soap4r не очень красиво. Я осмотрел abd rdocs, и похоже, что самый простой способ решить вашу проблему - это on_simple_outbound
вернуть строковое представление элемента, который вы хотите создать.
так вместо
return {"Identities" => {"Username" => username, "Password" => password, "Docbase" => docbase}}
1007 * попробовать *
%Q(<Identities xsi:type="RepositoryIdentity" userName="#{user}" password="#{password}" repositoryName="#{docbase}" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>)
используя что-то вроде строителя, вы можете сделать его более рубиновым, но попробуйте.
Другой вариант - изучить новые библиотеки мыла. Handsoap выглядит интересно.