Sha256: ecfd5157dac22a85c7ab7348dc32c738fa0beee580847e1113324d0b53db4894
Contents?: true
Size: 1.63 KB
Versions: 2
Compression:
Stored size: 1.63 KB
Contents
# Add "options" Argument to XSD Mapper/Mapping Methods # # @see https://github.com/rubyjedi/soap4r/pull/22 require "soap/mapping" require "soap/parser" require "xsd/mapping" require "xsd/qname" XSD::Mapping.instance_eval do undef :obj2xml undef :xml2obj end XSD::Mapping::Mapper.class_eval do undef :obj2xml undef :xml2obj end XSD::Mapping.send(:define_singleton_method, :obj2xml) do |*args| XSD::Mapping::Mapper.new(XSD::Mapping::MappingRegistry).obj2xml(*args) end XSD::Mapping.send(:define_singleton_method, :xml2obj) do |*args| XSD::Mapping::Mapper.new(XSD::Mapping::MappingRegistry).xml2obj(*args) end XSD::Mapping::Mapper.send(:define_method, :obj2xml) do |obj, elename = nil, io = nil, opts = {}| opt = XSD::Mapping::Mapper::MAPPING_OPT.dup.merge(opts) registry = instance_variable_get(:"@registry") unless elename if definition = registry.elename_schema_definition_from_class(obj.class) elename = definition.elename opt[:root_type_hint] = false end end elename = SOAP::Mapping.to_qname(elename) if elename soap = SOAP::Mapping.obj2soap(obj, registry, elename, opt) if soap.elename.nil? or soap.elename == XSD::QName::EMPTY soap.elename = XSD::QName.new(nil, SOAP::Mapping.name2elename(obj.class.to_s)) end generator = SOAP::Generator.new(opt) generator.generate(soap, io) end XSD::Mapping::Mapper.send(:define_method, :xml2obj) do |stream, klass = nil, opts = {}| opt = XSD::Mapping::Mapper::MAPPING_OPT.dup.merge(opts) registry = instance_variable_get(:"@registry") parser = SOAP::Parser.new(opt) soap = parser.parse(stream) SOAP::Mapping.soap2obj(soap, registry, klass) end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
building_sync_rails-0.1.1 | config/initializers/soap4r_ns_fix.rb |
building_sync_rails-0.1.0 | config/initializers/soap4r_ns_fix.rb |