Flowdock
method

dump_porttype

Importance_0
v1_8_7_330 - Show latest stable - 0 notes - Class: WSDL::SOAP::DriverCreator
dump_porttype(name) private

No documentation

This method has no description. You can help the Ruby community by adding new notes.

Hide source
# File lib/wsdl/soap/driverCreator.rb, line 44
  def dump_porttype(name)
    class_name = create_class_name(name)
    methoddef, types = MethodDefCreator.new(@definitions).dump(name)
    mr_creator = MappingRegistryCreator.new(@definitions)
    binding = @definitions.bindings.find { |item| item.type == name }
    return '' unless binding.soapbinding        # not a SOAP binding
    address = @definitions.porttype(name).locations[0]

    c = XSD::CodeGen::ClassDef.new(class_name, "::SOAP::RPC::Driver")
    c.def_require("soap/rpc/driver")
    c.def_const("MappingRegistry", "::SOAP::Mapping::Registry.new")
    c.def_const("DefaultEndpointUrl", ndq(address))
    c.def_code(mr_creator.dump(types))
    c.def_code "Methods = [\n\#{methoddef.gsub(/^/, \"  \")}\n]\n"
    c.def_method("initialize", "endpoint_url = nil") do
      "endpoint_url ||= DefaultEndpointUrl\nsuper(endpoint_url, nil)\nself.mapping_registry = MappingRegistry\ninit_methods\n"
    end
    c.def_privatemethod("init_methods") do
      "Methods.each do |definitions|\nopt = definitions.last\nif opt[:request_style] == :document\nadd_document_operation(*definitions)\nelse\nadd_rpc_operation(*definitions)\nqname = definitions[0]\nname = definitions[2]\nif qname.name != name and qname.name.capitalize == name.capitalize\n::SOAP::Mapping.define_singleton_method(self, qname.name) do |*arg|\n__send__(name, *arg)\nend\nend\nend\nend\n"
    end
    c.dump
  end
Register or log in to add new notes.