К сожалению, нет способа сделать это через SOAP4R. SOAP4R больше подходит для взаимодействия с конечными точками SOAP или для создания своих собственных с помощью спецификации WSDL.
Единственный известный мне Ruby-код, который делает это, поступает из ActionWebService, который был частью Rails, pre-Rails 2. Если вы установите гем actionwebservice
(вам, вероятно, придется его форсировать), вы можете посмотрите на метод to_wsdl
в файле lib/action_web_service/dispatcher/action_controller_dispatcher.rb
. Это создает WSDL с использованием библиотеки Builder. Определения для WSDL определяются с использованием методов в ActionWebService::API
. Не должно быть слишком сложно извлечь этот код во что-то, что вы можете использовать для своего проекта.