Class WSDL::Operation
In: lib/wsdl/operation.rb
Parent: Info

Methods

Classes and Modules

Class WSDL::Operation::NameInfo

Attributes

fault  [R] 
input  [R] 
name  [R] 
output  [R] 
parameter_order  [R] 
type  [R] 

Public Class methods

[Source]

    # File lib/wsdl/operation.rb, line 34
34:   def initialize
35:     super
36:     @name = nil
37:     @type = nil
38:     @parameter_order = nil
39:     @input = nil
40:     @output = nil
41:     @fault = []
42:   end

Public Instance methods

[Source]

    # File lib/wsdl/operation.rb, line 48
48:   def input_info
49:     typename = input.find_message.name
50:     NameInfo.new(@name, typename, inputparts)
51:   end

[Source]

    # File lib/wsdl/operation.rb, line 62
62:   def inputname
63:     XSD::QName.new(targetnamespace, input.name ? input.name.name : @name.name)
64:   end

[Source]

    # File lib/wsdl/operation.rb, line 58
58:   def inputparts
59:     sort_parts(input.find_message.parts)
60:   end

[Source]

    # File lib/wsdl/operation.rb, line 53
53:   def output_info
54:     typename = output.find_message.name
55:     NameInfo.new(@name, typename, outputparts)
56:   end

[Source]

    # File lib/wsdl/operation.rb, line 70
70:   def outputname
71:     XSD::QName.new(targetnamespace,
72:       output.name ? output.name.name : @name.name + 'Response')
73:   end

[Source]

    # File lib/wsdl/operation.rb, line 66
66:   def outputparts
67:     sort_parts(output.find_message.parts)
68:   end

[Source]

     # File lib/wsdl/operation.rb, line 97
 97:   def parse_attr(attr, value)
 98:     case attr
 99:     when NameAttrName
100:       @name = XSD::QName.new(targetnamespace, value.source)
101:     when TypeAttrName
102:       @type = value
103:     when ParameterOrderAttrName
104:       @parameter_order = value.source.split(/\s+/)
105:     else
106:       nil
107:     end
108:   end

[Source]

    # File lib/wsdl/operation.rb, line 75
75:   def parse_element(element)
76:     case element
77:     when InputName
78:       o = Param.new
79:       @input = o
80:       o
81:     when OutputName
82:       o = Param.new
83:       @output = o
84:       o
85:     when FaultName
86:       o = Param.new
87:       @fault << o
88:       o
89:     when DocumentationName
90:       o = Documentation.new
91:       o
92:     else
93:       nil
94:     end
95:   end

[Source]

    # File lib/wsdl/operation.rb, line 44
44:   def targetnamespace
45:     parent.targetnamespace
46:   end

Private Instance methods

[Source]

     # File lib/wsdl/operation.rb, line 112
112:   def sort_parts(parts)
113:     return parts.dup unless parameter_order
114:     result = []
115:     parameter_order.each do |orderitem|
116:       if (ele = parts.find { |part| part.name == orderitem })
117:         result << ele
118:       end
119:     end
120:     if result.length == 0
121:       return parts.dup
122:     end
123:     # result length can be shorter than parts's.
124:     # return part must not be a part of the parameterOrder.
125:     result
126:   end

[Validate]