Class: SOAP::WSDLDriverFactory
- Includes:
- WSDL::SOAP::ClassDefCreatorSupport
- Defined in:
- lib/soap/wsdlDriver.rb
Defined Under Namespace
Classes: FactoryError
Instance Attribute Summary collapse
-
#wsdl ⇒ Object
readonly
Returns the value of attribute wsdl.
Instance Method Summary collapse
- #create_rpc_driver(servicename = nil, portname = nil) ⇒ Object
- #dump_method_signatures(servicename = nil, portname = nil) ⇒ Object
-
#initialize(wsdl) ⇒ WSDLDriverFactory
constructor
A new instance of WSDLDriverFactory.
- #inspect ⇒ Object
Methods included from WSDL::SOAP::ClassDefCreatorSupport
#assign_const, #basetype_mapped_class, #create_type_name, #dq, #dqname, #dump_method_signature, #mapped_class_basename, #mapped_class_name, #ndq, #nsym, #sym
Methods included from XSD::CodeGen::GenSupport
capitalize, constant?, #format, keyword?, safeconstname, safeconstname?, safemethodname, safemethodname?, safevarname, safevarname?, uncapitalize
Constructor Details
#initialize(wsdl) ⇒ WSDLDriverFactory
Returns a new instance of WSDLDriverFactory.
32 33 34 |
# File 'lib/soap/wsdlDriver.rb', line 32 def initialize(wsdl) @wsdl = import(wsdl) end |
Instance Attribute Details
#wsdl ⇒ Object (readonly)
Returns the value of attribute wsdl.
30 31 32 |
# File 'lib/soap/wsdlDriver.rb', line 30 def wsdl @wsdl end |
Instance Method Details
#create_rpc_driver(servicename = nil, portname = nil) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/soap/wsdlDriver.rb', line 40 def create_rpc_driver(servicename = nil, portname = nil) port = find_port(servicename, portname) drv = SOAP::RPC::Driver.new(port.soap_address.location) if binding = port.find_binding init_driver(drv, binding) add_operation(drv, binding) end drv end |
#dump_method_signatures(servicename = nil, portname = nil) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/soap/wsdlDriver.rb', line 50 def dump_method_signatures(servicename = nil, portname = nil) targetservice = XSD::QName.new(@wsdl.targetnamespace, servicename) if servicename targetport = XSD::QName.new(@wsdl.targetnamespace, portname) if portname sig = [] element_definitions = @wsdl.collect_elements @wsdl.services.each do |service| next if targetservice and service.name != targetservice service.ports.each do |port| next if targetport and port.name != targetport if porttype = port.porttype assigned_method = collect_assigned_method(porttype.name) if binding = port.porttype.find_binding sig << binding.operations.collect { |op_bind| operation = op_bind.find_operation name = assigned_method[op_bind.boundid] || op_bind.name str = "= #{safemethodname(name)}\n\n" str << dump_method_signature(name, operation, element_definitions) str.gsub(/^#/, " ") }.join("\n") end end end end sig.join("\n") end |
#inspect ⇒ Object
36 37 38 |
# File 'lib/soap/wsdlDriver.rb', line 36 def inspect sprintf("#<%s:%s:0x%x\n\n%s>", self.class.name, @wsdl.name, __id__, dump_method_signatures) end |