Class: SOAP::Mapping::StringFactory_

Inherits:
Factory show all
Defined in:
lib/soap/mapping/factory.rb

Instance Method Summary collapse

Methods inherited from Factory

#setiv2obj, #setiv2soap

Methods included from TraverseSupport

#mark_marshalled_obj, #mark_unmarshalled_obj

Constructor Details

#initialize(allow_original_mapping = false) ⇒ StringFactory_

Returns a new instance of StringFactory_.



99
100
101
102
# File 'lib/soap/mapping/factory.rb', line 99

def initialize(allow_original_mapping = false)
  super()
  @allow_original_mapping = allow_original_mapping
end

Instance Method Details

#obj2soap(soap_class, obj, info, map) ⇒ Object



104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/soap/mapping/factory.rb', line 104

def obj2soap(soap_class, obj, info, map)
  if !@allow_original_mapping and !obj.instance_variables.empty?
    return nil
  end
  begin
    encoded = XSD::Charset.encoding_conv(obj, Mapping.external_ces,
      XSD::Charset.encoding)
    soap_obj = soap_class.new(encoded)
  rescue XSD::ValueSpaceError
    return nil
  end
  mark_marshalled_obj(obj, soap_obj)
  soap_obj
end

#soap2obj(obj_class, node, info, map) ⇒ Object



119
120
121
122
123
124
125
126
# File 'lib/soap/mapping/factory.rb', line 119

def soap2obj(obj_class, node, info, map)
  obj = Mapping.create_empty_object(obj_class)
  decoded = XSD::Charset.encoding_conv(node.data, XSD::Charset.encoding,
    Mapping.external_ces)
  obj.replace(decoded)
  mark_unmarshalled_obj(node, obj)
  return true, obj
end