Sha256: e47f49196bdaf5697940df5b77aa4ae2c0eaa1cc0c4d26c3be8d603ff7055e41

Contents?: true

Size: 1.33 KB

Versions: 5

Compression:

Stored size: 1.33 KB

Contents

# encoding: ASCII-8BIT
require 'default.rb'

require 'soap/rpc/driver'

class HwsPort < ::SOAP::RPC::Driver
  DefaultEndpointUrl = "http://localhost:2000/"
  MappingRegistry = ::SOAP::Mapping::Registry.new

  Methods = [
    ["hello_world", "hello_world",
      [
        [:in, "from", [::SOAP::SOAPString]],
        [:retval, "from", [::SOAP::SOAPString]]
      ],
      "http://localhost:2000/wsdl/hws.wsdl#hello_world", "http://localhost:2000/wsdl/hws.wsdl", :rpc
    ]
  ]

  def initialize(endpoint_url = nil)
    endpoint_url ||= DefaultEndpointUrl
    super(endpoint_url, nil)
    self.mapping_registry = MappingRegistry
    init_methods
  end

private

  def init_methods
    Methods.each do |name_as, name, params, soapaction, namespace, style|
      qname = XSD::QName.new(namespace, name_as)
      if style == :document
        @proxy.add_document_method(soapaction, name, params)
        add_document_method_interface(name, params)
      else
        @proxy.add_rpc_method(qname, soapaction, name, params)
        add_rpc_method_interface(name, params)
      end
      if name_as != name and name_as.capitalize == name.capitalize
        sclass = class << self; self; end
        sclass.__send__(:define_method, name_as, proc { |*arg|
          __send__(name, *arg)
        })
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
soap5r-2.0.3 sample/basic/wsdl_helloworld/client/defaultDriver.rb
soap5r-2.0.2 sample/basic/wsdl_helloworld/client/defaultDriver.rb
soap5r-2.0.1 sample/basic/wsdl_helloworld/client/defaultDriver.rb
soap5r-2.0.0 sample/basic/wsdl_helloworld/client/defaultDriver.rb
soap5r-2.0.0.20120130130121 sample/basic/wsdl_helloworld/client/defaultDriver.rb