ara.t.howard / noaa.gov wrote:
> On Sat, 4 Feb 2006, Joel VanderWerf wrote:
> 
>>
>> 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?
> 
> 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
> 

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).

-- 
      vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407