Included Modules

Files

Class Index [+]

Quicksearch

WSDL::SOAP::ClassDefCreatorSupport

requires @defined_const, @simpletypes, @name_creator

Public Instance Methods

assign_const(value, prefix = '') click to toggle source
     # File lib/wsdl/soap/classDefCreatorSupport.rb, line 87
 87:   def assign_const(value, prefix = '')
 88:     return if value.nil? or @defined_const.key?(value)
 89:     name = value.scan(/[^:\/]+\/?\z/)[0] || 'C'
 90:     tag = prefix + safeconstname(name)
 91:     if @defined_const.value?(tag)
 92:       idx = 0
 93:       while true
 94:         tag = prefix + safeconstname(name + "_#{idx}")
 95:         break unless @defined_const.value?(tag)
 96:         idx += 1
 97:         raise RuntimeError.new("too much similar names") if idx > 100
 98:       end
 99:     end
100:     @defined_const[value] = tag
101:   end
basetype_mapped_class(name) click to toggle source
    # File lib/wsdl/soap/classDefCreatorSupport.rb, line 32
32:   def basetype_mapped_class(name)
33:     ::SOAP::TypeMap[name]
34:   end
create_type_name(modulepath, element) click to toggle source
     # File lib/wsdl/soap/classDefCreatorSupport.rb, line 103
103:   def create_type_name(modulepath, element)
104:     if element.type == XSD::AnyTypeName
105:       # nil means anyType.
106:       nil
107:     elsif simpletype = @simpletypes[element.type]
108:       if simpletype.restriction and simpletype.restriction.enumeration?
109:         mapped_class_name(element.type, modulepath)
110:       else
111:         nil
112:       end
113:     elsif klass = element_basetype(element)
114:       klass.name
115:     elsif element.type
116:       mapped_class_name(element.type, modulepath)
117:     elsif element.ref
118:       mapped_class_name(element.ref, modulepath)
119:     elsif element.anonymous_type?
120:       # inner class
121:       mapped_class_name(element.name, modulepath)
122:     else
123:       nil
124:     end
125:   end
dq(ele) click to toggle source
    # File lib/wsdl/soap/classDefCreatorSupport.rb, line 63
63:   def dq(ele)
64:     ele.dump
65:   end
dqname(qname) click to toggle source
    # File lib/wsdl/soap/classDefCreatorSupport.rb, line 79
79:   def dqname(qname)
80:     if @defined_const.key?(qname.namespace)
81:       qname.dump(@defined_const[qname.namespace])
82:     else
83:       qname.dump
84:     end
85:   end
dump_method_signature(operation, element_definitions) click to toggle source
    # File lib/wsdl/soap/classDefCreatorSupport.rb, line 36
36:   def dump_method_signature(operation, element_definitions)
37:     name = operation.name
38:     input = operation.input
39:     output = operation.output
40:     fault = operation.fault
41:     signature = "#{ name }#{ dump_inputparam(input) }"
42:     str = # SYNOPSIS#   #{name}#{dump_inputparam(input)}## ARGS#{dump_inout_type(input, element_definitions).chomp}## RETURNS#{dump_inout_type(output, element_definitions).chomp}#
43:     unless fault.empty?
44:       str <<# RAISES#{dump_fault_type(fault, element_definitions)}#
45:     end
46:     str
47:   end
mapped_class_basename(qname, modulepath) click to toggle source
    # File lib/wsdl/soap/classDefCreatorSupport.rb, line 27
27:   def mapped_class_basename(qname, modulepath)
28:     classname = @name_creator.assign_name(qname, modulepath)
29:     classname.sub(/\A.*:/, '')
30:   end
mapped_class_name(qname, modulepath) click to toggle source
    # File lib/wsdl/soap/classDefCreatorSupport.rb, line 23
23:   def mapped_class_name(qname, modulepath)
24:     @name_creator.assign_name(qname, modulepath)
25:   end
ndq(ele) click to toggle source
    # File lib/wsdl/soap/classDefCreatorSupport.rb, line 67
67:   def ndq(ele)
68:     ele.nil? ? 'nil' : dq(ele)
69:   end
nsym(ele) click to toggle source
    # File lib/wsdl/soap/classDefCreatorSupport.rb, line 75
75:   def nsym(ele)
76:     ele.nil? ? 'nil' : sym(ele)
77:   end
sym(ele) click to toggle source
    # File lib/wsdl/soap/classDefCreatorSupport.rb, line 71
71:   def sym(ele)
72:     ':' + ele.id2name
73:   end

Private Instance Methods

add_at(base, str, pos) click to toggle source
     # File lib/wsdl/soap/classDefCreatorSupport.rb, line 172
172:   def add_at(base, str, pos)
173:     if base.size >= pos
174:       base + ' ' + str
175:     else
176:       base + ' ' * (pos - base.size) + str
177:     end
178:   end
attribute_basetype(attr) click to toggle source
     # File lib/wsdl/soap/classDefCreatorSupport.rb, line 196
196:   def attribute_basetype(attr)
197:     if klass = basetype_class(attr.type)
198:       klass
199:     elsif attr.local_simpletype
200:       basetype_class(attr.local_simpletype.base)
201:     else
202:       nil
203:     end
204:   end
basetype_class(type) click to toggle source
     # File lib/wsdl/soap/classDefCreatorSupport.rb, line 206
206:   def basetype_class(type)
207:     return nil if type.nil?
208:     if simpletype = @simpletypes[type]
209:       basetype_mapped_class(simpletype.base)
210:     else
211:       basetype_mapped_class(type)
212:     end
213:   end
dump_fault_type(fault, element_definitions) click to toggle source
     # File lib/wsdl/soap/classDefCreatorSupport.rb, line 180
180:   def dump_fault_type(fault, element_definitions)
181:     fault.collect { |ele|
182:       dump_inout_type(ele, element_definitions).chomp
183:     }.join("\n")
184:   end
dump_inout_type(param, element_definitions) click to toggle source
     # File lib/wsdl/soap/classDefCreatorSupport.rb, line 129
129:   def dump_inout_type(param, element_definitions)
130:     if param
131:       message = param.find_message
132:       params = ""
133:       message.parts.each do |part|
134:         name = safevarname(part.name)
135:         if part.type
136:           typename = safeconstname(part.type.name)
137:           qname = part.type
138:           params << add_at("#   #{name}", "#{typename} - #{qname}\n", 20)
139:         elsif part.element
140:           ele = element_definitions[part.element]
141:           if ele.type
142:             typename = safeconstname(ele.type.name)
143:             qname = ele.type
144:           else
145:             typename = safeconstname(ele.name.name)
146:             qname = ele.name
147:           end
148:           params << add_at("#   #{name}", "#{typename} - #{qname}\n", 20)
149:         end
150:       end
151:       unless params.empty?
152:         return params
153:       end
154:     end
155:     "#   N/A\n"
156:   end
dump_inputparam(input) click to toggle source
     # File lib/wsdl/soap/classDefCreatorSupport.rb, line 158
158:   def dump_inputparam(input)
159:     message = input.find_message
160:     params = ""
161:     message.parts.each do |part|
162:       params << ", " unless params.empty?
163:       params << safevarname(part.name)
164:     end
165:     if params.empty?
166:       ""
167:     else
168:       "(#{ params })"
169:     end
170:   end
element_basetype(ele) click to toggle source
     # File lib/wsdl/soap/classDefCreatorSupport.rb, line 186
186:   def element_basetype(ele)
187:     if klass = basetype_class(ele.type)
188:       klass
189:     elsif ele.local_simpletype
190:       basetype_class(ele.local_simpletype.base)
191:     else
192:       nil
193:     end
194:   end
name_attribute(attribute) click to toggle source
     # File lib/wsdl/soap/classDefCreatorSupport.rb, line 221
221:   def name_attribute(attribute)
222:     return attribute.name if attribute.name 
223:     return attribute.ref if attribute.ref
224:     raise RuntimeError.new("cannot define name of #{attribute}")
225:   end
name_element(element) click to toggle source
     # File lib/wsdl/soap/classDefCreatorSupport.rb, line 215
215:   def name_element(element)
216:     return element.name if element.name 
217:     return element.ref if element.ref
218:     raise RuntimeError.new("cannot define name of #{element}")
219:   end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.