From 686c038347b41761032c728ca5babc18a35ad142 Mon Sep 17 00:00:00 2001 From: mneumann Date: Fri, 24 Jun 2005 20:27:43 +0000 Subject: * lib/xmlrpc/*, test/xmlrpc/*: backported changes from HEAD into 1.8 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/xmlrpc/create.rb | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'lib/xmlrpc/create.rb') 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 -- cgit v1.2.3