Sha256: d1e51a3081edd3bb9cee12d29eec50c326d79c255a50cef0cade41b74a2a0681

Contents?: true

Size: 842 Bytes

Versions: 4

Compression:

Stored size: 842 Bytes

Contents

module WashOutHelper
  def wsdl_data(xml, param)
    if param.is_a? Hash
      wsdl_data xml, param.map
    else
      param.each do |opt, value|
        xml.tag! opt.name, value.to_s
      end
    end
  end

  def wsdl_type(xml, param)
    more = []

    if param.struct?
      return if param.value.blank?

      xml.complexType :name => param.name do
        xml.sequence do
          param.map.each do |key, value|
            more << value if value.struct?
            xml.element wsdl_occurence(value, :name => key, :type => value.namespaced_type)
          end
        end
      end
    end

    more.each do |p|
      wsdl_type xml, p
    end
  end

  def wsdl_occurence(param, extend_with = {})
    data = !param.multiplied ? {} : {
      :minOccurs => 0,
      :maxOccurs => 'unbounded'
    }

    extend_with.merge(data)
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
wash_out-0.2.3 app/helpers/wash_out_helper.rb
wash_out-0.2.2 app/helpers/wash_out_helper.rb
wash_out-0.2.1 app/helpers/wash_out_helper.rb
wash_out-0.2.0 app/helpers/wash_out_helper.rb