On Thu, 22 Jul 2004, D T wrote:

> s="0123456789"
> s[-1..-2]    #=> ""
> s[-2..-1]    #=> "89"
> s[-1..-3]    #=> nil
> s[-3..-1]    #=> "789"
> s[-1..-2] = "..." ; s #=> "012345678...9"
>
> Expect s[-1..-2] returns nil as s[-1..-3]. (bug ? it returns empty string
> instead of nil.)


for ranges, start must be <= end and -1 is not <= -2

eg. for the string "foobar":

     ---- --- ----
     char idx nidx
     ---- --- ----
     f    0    -6
     o    1    -5
     o    2    -4
     b    3    -3
     a    4    -2
     r    5    -1

   ~ > irb
   irb(main):001:0> "foobar"[-2..-1]
   => "ar"
   irb(main):002:0> "foobar"[-6..-4]
   => "foo"
   irb(main):003:0> "foobar"[-3..-1]
   => "bar"

cheers.

-a
--
===============================================================================
| EMAIL   :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
| PHONE   :: 303.497.6469
| A flower falls, even though we love it;
| and a weed grows, even though we do not love it. 
|   --Dogen
===============================================================================