diff options
author | mneumann <mneumann@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-11-15 23:26:20 +0000 |
---|---|---|
committer | mneumann <mneumann@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-11-15 23:26:20 +0000 |
commit | 396b1f27ca1581aa676c235a5d021828eef6257f (patch) | |
tree | 96f95f56b0a5b3cfa508a3b669b068c0705a644c /lib/xmlrpc/create.rb | |
parent | 67d54f209d28019cc5d8b332706dd9950b56bdc7 (diff) | |
download | ruby-396b1f27ca1581aa676c235a5d021828eef6257f.tar.gz |
* imported and refactored original test cases
* added methods XMLRPC::XMLParser.each_installed_parser and
XMLRPC::XMLWriter.each_installed_writer to simply original test cases
* use Object#allocate instead of defining an empty #initialize
* module XMLRPC::Marshallable is now only used for tagging
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/xmlrpc/create.rb')
-rw-r--r-- | lib/xmlrpc/create.rb | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/xmlrpc/create.rb b/lib/xmlrpc/create.rb index 072e72ab46..0bfa4ab551 100644 --- a/lib/xmlrpc/create.rb +++ b/lib/xmlrpc/create.rb @@ -86,6 +86,18 @@ module XMLRPC end # class XMLParser + Classes = [Simple, XMLParser] + + # yields an instance of each installed XML writer + def self.each_installed_writer + XMLRPC::XMLWriter::Classes.each do |klass| + begin + yield klass.new + rescue LoadError + end + end + end + end # module XMLWriter class Create @@ -248,7 +260,10 @@ module XMLRPC if Config::ENABLE_MARSHALLING and param.class.included_modules.include? XMLRPC::Marshallable # convert Ruby object into Hash ret = {"___class___" => param.class.name} - param.__get_instance_variables.each {|name, val| + param.instance_variables.each {|v| + name = v[1..-1] + val = param.instance_variable_get(v) + if val.nil? ret[name] = val if Config::ENABLE_NIL_CREATE else |