From: Josh Cheek Date: 2010-06-19T16:59:21+09:00 Subject: Re: String comparison. Why does Ruby consider this true? --0016e6541cf6d3eb3f04895d7223 Content-Type: text/plain; charset=ISO-8859-1 On Sat, Jun 19, 2010 at 2:04 AM, Michael Fellinger wrote: > On Sat, Jun 19, 2010 at 6:21 AM, Josh Cheek 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. --0016e6541cf6d3eb3f04895d7223--