From: Dave Thomas Date: 2003-12-13T02:32:40+09:00 Subject: YAML bug The following code: require 'yaml' module A B = Struct.new(:c) end b = A::B.new(123) str = YAML.dump(b) puts str bb = YAML.load(str) Generates the following when run: dave[tmp/ri2 11:31:00] ruby y.rb --- !ruby/structA::B c: 123 /usr/lib/ruby/1.8/yaml/rubytypes.rb:181:in `new': identifier :B needs to be constant (NameError) from /usr/lib/ruby/1.8/yaml/rubytypes.rb:181 from /usr/lib/ruby/1.8/yaml/rubytypes.rb:168:in `call' from y.rb:1:in `transfer' from /usr/lib/ruby/1.8/yaml.rb:39:in `load' from /usr/lib/ruby/1.8/yaml.rb:39:in `load' from y.rb:10 The problem seems to be a missing colon between 'struct' and 'A' in the first line of the serialized form. Cheers Dave