class Sekken::WSDL::Service
Public Class Methods
new(service_node)
click to toggle source
# File lib/sekken/wsdl/service.rb, line 7 def initialize(service_node) @service_node = service_node end
Public Instance Methods
name()
click to toggle source
# File lib/sekken/wsdl/service.rb, line 11 def name @service_node['name'] end
ports()
click to toggle source
# File lib/sekken/wsdl/service.rb, line 15 def ports @ports ||= ports! end
to_hash()
click to toggle source
# File lib/sekken/wsdl/service.rb, line 19 def to_hash port_hash = ports.values.inject({}) { |memo, port| memo.merge port.to_hash } { name => { ports: port_hash } } end
Private Instance Methods
ports!()
click to toggle source
# File lib/sekken/wsdl/service.rb, line 26 def ports! ports = {} @service_node.element_children.each do |port_node| next unless port_node.name == 'port' soap_node = port_node.element_children.find { |node| namespace = node.namespace.href soap_1_1 = namespace == Sekken::NS_SOAP_1_1 soap_1_2 = namespace == Sekken::NS_SOAP_1_2 address = node.name == 'address' (soap_1_1 || soap_1_2) && address } next unless soap_node port_name = port_node['name'] port = Port.new(port_node, soap_node) ports[port_name] = port end ports end