diff options
author | mneumann <mneumann@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-06-24 20:27:43 +0000 |
---|---|---|
committer | mneumann <mneumann@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-06-24 20:27:43 +0000 |
commit | 686c038347b41761032c728ca5babc18a35ad142 (patch) | |
tree | 3b53de37a575c315b6daebd746ee91461dbc0833 /lib/xmlrpc/create.rb | |
parent | 1ee06ebecf3b3b96de788c8dedd3b0de3cb0be18 (diff) |
* 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
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 |