Project

General

Profile

Actions

Backport #1331

closed

YAML misformats hash with ruby object as key

Added by bahuvrihi (Simon Chiang) about 15 years ago. Updated almost 5 years ago.

Status:
Closed
Assignee:
-
[ruby-core:23062]

Description

=begin
YAML misformats the dump of hashes where the key is a user-defined ruby object. For instance:

class A; end
YAML.dump({A.new => :a})

Produces:


!ruby/object:A ? {}
: :a

Which cannot be reloaded as YAML because the question mark is in the wrong place. The correctly formatted YAML is:


? !ruby/object:A {}
: :a

I have attached a couple tests with a patch illustrating how to work around this problem using gsub. Obviously a string substitution is not a long term solution, but I hope it illustrates what needs to be fixed.
=end


Files

yaml_test.rb (992 Bytes) yaml_test.rb yaml_test.rb bahuvrihi (Simon Chiang), 03/30/2009 12:53 PM
Actions #1

Updated by Confusion (Ivo Wever) about 13 years ago

=begin
This bug still exists in ruby 1.8.7 (2011-02-18 patchlevel 334). Is there a known fix or workaround that I can use? The gsub suggested by Simon seems a bit brittle.
=end

Actions #2

Updated by jeremyevans0 (Jeremy Evans) almost 5 years ago

  • Tracker changed from Bug to Backport
  • Project changed from Ruby 1.8 to Backport187
  • Description updated (diff)
  • Status changed from Open to Closed
  • ruby -v deleted (ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0])
Actions

Also available in: Atom PDF

Like0
Like0Like0