I
Ivo Wever
Hi,
I'm looking for a workaround for the problem that you can't
roundtrip a Hash with OrderedHashes as keys. The simplest demonstration,
using Ruby Enterprise 2011.03 (1.8.7 p334), ActiveSupport 3.0.4:
foo = {ActiveSupport::OrderedHash['x', 'y'] => 'z'}
=> {#<OrderedHash {"x"=>"y"}>=>"z"}
YAML.dump(foo)
=> "--- \n!omap ? \n - x: y\n: z\n\n"
The YAML that was dumped here is wrong. It should have been:
"--- \n? !omap \n - x: y\n: z\n\n"
To demonstrate:
YAML.load("--- \n!omap ? \n - x: y\n: z\n\n")
ArgumentError: syntax error on line 2, col -1: ` - x: y
: z
'
YAML.load("--- \n? !omap \n - x: y\n: z\n\n")
=> {#<OrderedHash {"x"=>"y"}>=>"z"}
This issue is probably related to
http://www.ruby-forum.com/topic/215047. Does anyone know a workaround
for this. I've been looking into the sources, but I fear it will take me
a while to figure it all out and perhaps someone here has a solution at
hand?
I'm looking for a workaround for the problem that you can't
roundtrip a Hash with OrderedHashes as keys. The simplest demonstration,
using Ruby Enterprise 2011.03 (1.8.7 p334), ActiveSupport 3.0.4:
foo = {ActiveSupport::OrderedHash['x', 'y'] => 'z'}
=> {#<OrderedHash {"x"=>"y"}>=>"z"}
YAML.dump(foo)
=> "--- \n!omap ? \n - x: y\n: z\n\n"
The YAML that was dumped here is wrong. It should have been:
"--- \n? !omap \n - x: y\n: z\n\n"
To demonstrate:
YAML.load("--- \n!omap ? \n - x: y\n: z\n\n")
ArgumentError: syntax error on line 2, col -1: ` - x: y
: z
'
YAML.load("--- \n? !omap \n - x: y\n: z\n\n")
=> {#<OrderedHash {"x"=>"y"}>=>"z"}
This issue is probably related to
http://www.ruby-forum.com/topic/215047. Does anyone know a workaround
for this. I've been looking into the sources, but I fear it will take me
a while to figure it all out and perhaps someone here has a solution at
hand?