From: IWATSUKI Hiroyuki Date: 2004-06-23T18:50:00+09:00 Subject: YAML.load and exception objects I found a problem about YAML.load() and exception objects. % ruby -v -ryaml -e "YAML.load(Exception.new.to_yaml)" ruby 1.8.2 (2004-06-19) [i386-cygwin] /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:274:in `object_maker': wrong number of arguments (3 for 2) (ArgumentError) from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:274 from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:272:in `call' from -e:1:in `transfer' from /usr/local/lib/ruby/1.8/yaml.rb:119:in `load' from /usr/local/lib/ruby/1.8/yaml.rb:119:in `load' from -e:1 I think so that the latest YAML.object_maker() in lib/yaml.rb was changed. Index: rubytypes.rb =================================================================== RCS file: /home/don/ruby/cvs/src/ruby/lib/yaml/rubytypes.rb,v retrieving revision 1.24 diff -u -p -u -p -r1.24 rubytypes.rb --- rubytypes.rb 25 May 2004 14:57:25 -0000 1.24 +++ rubytypes.rb 22 Jun 2004 18:43:51 -0000 @@ -271,7 +271,7 @@ end YAML.add_ruby_type( /^exception/ ) { |type, val| type, obj_class = YAML.read_type_class( type, Exception ) - o = YAML.object_maker( obj_class, { 'mesg' => val.delete( 'message' ) }, true ) + o = YAML.object_maker( obj_class, { 'mesg' => val.delete( 'message' ) } ) val.each_pair { |k,v| o.instance_variable_set("@#{k}", v) } Thanks, -- Hiroyuki Iwatsuki