require "savon/qualified_message" require "gyoku" module Savon class Message def initialize(operation_name, namespace_identifier, types, used_namespaces, message, element_form_default, key_converter) @operation_name = operation_name @namespace_identifier = namespace_identifier @types = types @used_namespaces = used_namespaces @message = message @element_form_default = element_form_default @key_converter = key_converter end def to_s return @message.to_s unless @message.kind_of? Hash if @element_form_default == :qualified translated_operation_name = Gyoku.xml_tag(@operation_name, :key_converter => @key_converter).to_s @message = QualifiedMessage.new(@types, @used_namespaces, @request_key_converter).to_hash(@message, [translated_operation_name]) end gyoku_options = { :element_form_default => @element_form_default, :namespace => @namespace_identifier, :key_converter => @key_converter } Gyoku.xml(@message, gyoku_options) end end end