Class: WSDL::PortType

Inherits:
Info
  • Object
show all
Defined in:
lib/wsdl/portType.rb

Instance Attribute Summary collapse

Attributes inherited from Info

#id, #parent, #root

Instance Method Summary collapse

Methods inherited from Info

#inspect, #parse_epilogue

Constructor Details

#initializePortType

Returns a new instance of PortType


24
25
26
27
28
# File 'lib/wsdl/portType.rb', line 24

def initialize
  super
  @name = nil
  @operations = XSD::NamedElements.new
end

Instance Attribute Details

#nameObject (readonly)

required


17
18
19
# File 'lib/wsdl/portType.rb', line 17

def name
  @name
end

#operationsObject (readonly)

Returns the value of attribute operations


18
19
20
# File 'lib/wsdl/portType.rb', line 18

def operations
  @operations
end

Instance Method Details

#find_bindingObject


30
31
32
33
# File 'lib/wsdl/portType.rb', line 30

def find_binding
  root.bindings.find { |item| item.type == @name } or
    raise RuntimeError.new("#{@name} not found")
end

#locationsObject


35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/wsdl/portType.rb', line 35

def locations
  bind_name = find_binding.name
  result = []
  root.services.each do |service|
    service.ports.each do |port|
      if port.binding == bind_name
        result << port.soap_address.location if port.soap_address
      end
    end
  end
  result
end

#parse_attr(attr, value) ⇒ Object


62
63
64
65
66
67
68
69
# File 'lib/wsdl/portType.rb', line 62

def parse_attr(attr, value)
  case attr
  when NameAttrName
    @name = XSD::QName.new(targetnamespace, value.source)
  else
    nil
  end
end

#parse_element(element) ⇒ Object


48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/wsdl/portType.rb', line 48

def parse_element(element)
  case element
  when OperationName
    o = Operation.new
    @operations << o
    o
  when DocumentationName
    o = Documentation.new
    o
  else
    nil
  end
end

#targetnamespaceObject


20
21
22
# File 'lib/wsdl/portType.rb', line 20

def targetnamespace
  parent.targetnamespace
end