1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/soap/baseData.rb: Introduce SOAPType as the common ancestor of

SOAPBasetype and SOAPCompoundtype.

* lib/soap/generator.rb, lib/soap/element.rb, lib/soap/encodingstyle/*:
  Encoding methods signature change.  Pass SOAPGenerator as a parameter.

* lib/soap/mapping/*, test/soap/marshal/test_marshal.rb: Refactoring for better
  marshalling/unmarshalling support.  Now I think SOAP marshaller supports all
  kind of object graph which is supported by Ruby's original marshaller.  Of
  course there could be bugs as always.  Find it.  :-)

* lib/soap/rpc/standaloneServer.rb: Set severity threshould to INFO.  DEBUG is
  too noisy.

* lib/xsd/datatypes.rb: DateTime#of is obsoleted.  Use DateTime#offset.

* test/wsdl/emptycomplextype.wsdl, test/xsd/xmlschema.xml: Avoid useless
  warning.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nahi 2003-10-14 15:14:02 +00:00
parent 0b841783b5
commit 9cba39a1a1
21 changed files with 716 additions and 402 deletions

View file

@ -37,7 +37,7 @@ class LiteralHandler < Handler
###
## encode interface.
#
def encode_data(buf, ns, qualified, data, parent, indent = '')
def encode_data(generator, ns, qualified, data, parent)
attrs = {}
name = if qualified and data.elename.namespace
SOAPGenerator.assign_ns(attrs, ns, data.elename.namespace)
@ -48,31 +48,29 @@ class LiteralHandler < Handler
case data
when SOAPRawString
SOAPGenerator.encode_tag(buf, name, attrs, indent)
buf << data.to_s
generator.encode_tag(name, attrs)
generator.encode_rawstring(data.to_s)
when XSD::XSDString
SOAPGenerator.encode_tag(buf, name, attrs, indent)
buf << SOAPGenerator.encode_str(@charset ?
XSD::Charset.encoding_to_xml(data.to_s, @charset) : data.to_s)
generator.encode_tag(name, attrs)
generator.encode_string(@charset ? XSD::Charset.encoding_to_xml(data.to_s, @charset) : data.to_s)
when XSD::XSDAnySimpleType
SOAPGenerator.encode_tag(buf, name, attrs, indent)
buf << SOAPGenerator.encode_str(data.to_s)
generator.encode_tag(name, attrs)
generator.encode_string(data.to_s)
when SOAPStruct
SOAPGenerator.encode_tag(buf, name, attrs, indent)
generator.encode_tag(name, attrs)
data.each do |key, value|
value.elename.namespace = data.elename.namespace if !value.elename.namespace
yield(value, true)
end
when SOAPArray
SOAPGenerator.encode_tag(buf, name, attrs, indent)
generator.encode_tag(name, attrs)
data.traverse do |child, *rank|
data.position = nil
yield(child, true)
end
when SOAPElement
SOAPGenerator.encode_tag(buf, name, attrs.update(data.extraattr),
indent)
buf << data.text if data.text
generator.encode_tag(name, attrs.update(data.extraattr))
generator.encode_rawstring(data.text) if data.text
data.each do |key, value|
value.elename.namespace = data.elename.namespace if !value.elename.namespace
#yield(value, data.qualified)
@ -83,13 +81,13 @@ class LiteralHandler < Handler
end
end
def encode_data_end(buf, ns, qualified, data, parent, indent)
def encode_data_end(generator, ns, qualified, data, parent)
name = if qualified and data.elename.namespace
ns.name(data.elename)
else
data.elename.name
end
SOAPGenerator.encode_tag_end(buf, name, indent)
generator.encode_tag_end(name)
end