On Sat, Jun 19, 2010 at 2:04 AM, Michael Fellinger <m.fellinger / gmail.com>wrote:

> On Sat, Jun 19, 2010 at 6:21 AM, Josh Cheek <josh.cheek / gmail.com> wrote:
> >
> > Thanks, but it doesn't seem to work on 1.8
> >
> >
> > RUBY_VERSION # => "1.8.7"
> >
> > %w[Xeo xeo ball ABC abc].sort.each{|word| p word => word.codepoints.to_a
> } #
> > =>
> > # ~> -:3: undefined method `codepoints' for "ABC":String (NoMethodError)
> > # ~>     from -:3:in `each'
> > # ~>     from -:3
> >
> >
> >
> >
> > And the 1.8 ways to get it don't work on 1.9 (ie "a"[0])
>
> >> %w[Xeo xeo ball ABC abc].sort.each{|word| p word => word.unpack('C*') }
> {"ABC"=>[65, 66, 67]}
> {"Xeo"=>[88, 101, 111]}
> {"abc"=>[97, 98, 99]}
> {"ball"=>[98, 97, 108, 108]}
> {"xeo"=>[120, 101, 111]}
> => ["ABC", "Xeo", "abc", "ball", "xeo"]
>
> There is always a way to make things work on both, it's just that I
> don't care much about 1.8 anymore.
>
> --
> Michael Fellinger
> CTO, The Rubyists, LLC
>
>
Well, a lot of systems still ship with it, SnowLeopard, for example ships
with 1.8.7, so I think that while this is a legitimate personal decision, it
is good to be aware of one's audience. For example, since Abder-rahman is
having difficulty understanding String comparison, then it is probably fair
to assume he isn't initiated enough to understand why the example that is
supposed to help him understand ends up breaking (if he is on 1.8). That
could be very discouraging for someone new, come to the ML to get a better
understanding, and the answers, given by the people who know what they are
doing won't even run.

Anyway, I really do like your solution ^_^ It is elegant and uniform, thank
you for providing it.