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:
parent
0b841783b5
commit
9cba39a1a1
21 changed files with 716 additions and 402 deletions
|
@ -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
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue