find_operation()
click to toggle source
def find_operation
porttype.operations[@name] or raise RuntimeError.new("#{@name} not found")
end
parse_attr(attr, value)
click to toggle source
def parse_attr(attr, value)
case attr
when NameAttrName
@name = XSD::QName.new(targetnamespace, value.source)
else
nil
end
end
parse_element(element)
click to toggle source
def parse_element(element)
case element
when InputName
o = Param.new
@input = o
o
when OutputName
o = Param.new
@output = o
o
when FaultName
o = Param.new
@fault << o
o
when SOAPOperationName
o = WSDL::SOAP::Operation.new
@soapoperation = o
o
when DocumentationName
o = Documentation.new
o
else
nil
end
end
porttype()
click to toggle source
def porttype
root.porttype(parent.type)
end
soapaction()
click to toggle source
def soapaction
if @soapoperation
@soapoperation.soapaction
else
nil
end
end
soapoperation_name()
click to toggle source
def soapoperation_name
if @soapoperation
@soapoperation.input_info.op_name
else
find_operation.name
end
end
soapoperation_style()
click to toggle source
def soapoperation_style
style = nil
if @soapoperation
style = @soapoperation.operation_style
elsif parent.soapbinding
style = parent.soapbinding.style
else
raise TypeError.new("operation style definition not found")
end
style || :document
end
targetnamespace()
click to toggle source
def targetnamespace
parent.targetnamespace
end