From: Joel VanderWerf Date: 2006-02-04T07:06:48+09:00 Subject: Re: [YAML] what happened to :SortKeys option to #to_yaml? 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