class WSDL::SOAP::Operation

Attributes

soapaction[R]
style[R]

Public Class Methods

new() click to toggle source
Calls superclass method WSDL::Info::new
# File lib/wsdl/soap/operation.rb, line 45
def initialize
  super
  @soapaction = nil
  @style = nil
end

Public Instance Methods

operation_style() click to toggle source
# File lib/wsdl/soap/operation.rb, line 71
def operation_style
  return @style if @style
  if parent_binding.soapbinding
    return parent_binding.soapbinding.style
  end
  nil
end
parse_attr(attr, value) click to toggle source
# File lib/wsdl/soap/operation.rb, line 55
def parse_attr(attr, value)
  case attr
  when StyleAttrName
    if ["document", "rpc"].include?(value.source)
      @style = value.source.intern
    else
      raise Parser::AttributeConstraintError.new(
        "Unexpected value #{ value }.")
    end
  when SOAPActionAttrName
    @soapaction = value.source
  else
    nil
  end
end
parse_element(element) click to toggle source
# File lib/wsdl/soap/operation.rb, line 51
def parse_element(element)
  nil
end

Private Instance Methods

create_param_info(name_info, param) click to toggle source
# File lib/wsdl/soap/operation.rb, line 85
def create_param_info(name_info, param)
  op_style = operation_style()
  op_use = param.soapbody_use
  op_encodingstyle = param.soapbody_encodingstyle
  op_name = name_info.op_name
  optype_name = name_info.optype_name
  soapheader = param.soapheader
  headerparts = soapheader.collect { |item| item.find_part }
  soapbody = param.soapbody
  if soapbody.namespace
    op_name = XSD::QName.new(soapbody.namespace, op_name.name)
  end
  if soapbody.parts
    target = soapbody.parts.split(/\s+/)
    bodyparts = name_info.parts.find_all { |part|
      target.include?(part.name)
    }
  else
    bodyparts = name_info.parts
  end
  faultpart = nil
  ParamInfo.new(op_style, op_use, op_encodingstyle, op_name, optype_name,
    headerparts, bodyparts, faultpart, parent.soapaction)
end
parent_binding() click to toggle source
# File lib/wsdl/soap/operation.rb, line 81
def parent_binding
  parent.parent
end