What happened to :SortKeys option to #to_yaml?


#1

I think this used to produce sorted output in 1.8.2:

irb(main):002:0> h = {}
=> {}
irb(main):003:0> 10.times {|i| h[i] = i}
=> 10
irb(main):004:0> puts h.to_yaml(:SortKeys => true)

5: 5
0: 0
6: 6
1: 1
7: 7
2: 2
8: 8
3: 3
9: 9
4: 4
=> nil

Is there still a way to do this?


#2

On Sat, 4 Feb 2006, Joel VanderWerf wrote:

0: 0
Is there still a way to do this?
i just happened to be working on this today

jib:~/eg/ruby/alib/alib-0.3.1 > cat a.rb
require “alib”

oh = ALib::OrderedHash::new

(“a”…“z”).to_a.reverse.each{|x| oh[x] = x}

oh.yaml_inline!

y oh

jib:~/eg/ruby/alib/alib-0.3.1 > RUBYLIB=./lib ruby a.rb
— { z: z, y: y, x: x, w: w, v: v, u: u, t: t, s: s, r: r, q: q, p:
p, o: o, n: n, m: m, l: l, k: k, j: j, i: i, h: h, g: g, f: f, e: e, d:
d, c: c, b: b, a: a }

the class is in alib now, but the yaml_inline will break on 1.8.4.
releasing soon.

cheers.

-a


#3

removed_email_address@domain.invalid wrote:


=> nil
(“a”…“z”).to_a.reverse.each{|x| oh[x] = x}

the class is in alib now, but the yaml_inline will break on 1.8.4.
releasing soon.

cheers.

-a

Not quite the same, is it?

I don’t want to preserve the order in which I add keys. I just want the
YAML output to be sorted by key.

Also, I want the old behavior of :SortKeys, which was to do this
recursively to all hashes hanging off the object you call #to_yaml on.

This is mostly for aesthetic reasons (and being able to find keys in the
output doc).


#4

On Fri, 3 Feb 2006, Joel VanderWerf wrote:

Not quite the same, is it?

you’re right.

I don’t want to preserve the order in which I add keys. I just want the YAML
output to be sorted by key.

Also, I want the old behavior of :SortKeys, which was to do this recursively
to all hashes hanging off the object you call #to_yaml on.

This is mostly for aesthetic reasons (and being able to find keys in the
output doc).

hmmm. ifirc yaml always does this for hashes now… i may be mistaken
though.

i actually hit that same bug today!

-a