class SOAP::Mapping::Factory

Public Class Methods

new() click to toggle source
# File lib/soap/mapping/factory.rb, line 16
def initialize
  # nothing to do
end

Public Instance Methods

obj2soap(soap_class, obj, info, map) click to toggle source
# File lib/soap/mapping/factory.rb, line 20
def obj2soap(soap_class, obj, info, map)
  raise NotImplementError.new
  # return soap_obj
end
setiv2obj(obj, node, map) click to toggle source
# File lib/soap/mapping/factory.rb, line 30
def setiv2obj(obj, node, map)
  return if node.nil?
  if obj.is_a?(Array)
    setiv2ary(obj, node, map)
  else
    setiv2struct(obj, node, map)
  end
end
setiv2soap(node, obj, map) click to toggle source
# File lib/soap/mapping/factory.rb, line 39
def setiv2soap(node, obj, map)
  if obj.class.class_variables.include?('@@schema_element')
    obj.class.class_eval('@@schema_element').each do |name, info|
      type, qname = info
      if qname
        elename = qname.name
      else
        elename = Mapping.name2elename(name)
      end
      node.add(elename,
        Mapping._obj2soap(obj.instance_variable_get('@' + name), map))
    end
  else
    # should we sort instance_variables?
    obj.instance_variables.each do |var|
      name = var.sub(/^@/, '')
      elename = Mapping.name2elename(name)
      node.add(elename,
        Mapping._obj2soap(obj.instance_variable_get(var), map))
    end
  end
end
soap2obj(obj_class, node, info, map) click to toggle source
# File lib/soap/mapping/factory.rb, line 25
def soap2obj(obj_class, node, info, map)
  raise NotImplementError.new
  # return convert_succeeded_or_not, obj
end

Private Instance Methods

setiv2ary(obj, node, map) click to toggle source
# File lib/soap/mapping/factory.rb, line 64
def setiv2ary(obj, node, map)
  node.each do |name, value|
    Array.instance_method(:<<).bind(obj).call(Mapping._soap2obj(value, map))
  end
end
setiv2struct(obj, node, map) click to toggle source
# File lib/soap/mapping/factory.rb, line 70
def setiv2struct(obj, node, map)
  vars = {}
  node.each do |name, value|
    vars[Mapping.elename2name(name)] = Mapping._soap2obj(value, map)
  end
  Mapping.set_attributes(obj, vars)
end