Was just thinking about this one a little more.  Do you have a spec for the highest negative number?

In other words, the Array [:a, :b, :c] has indexes 0, 1, 2, -1, -2, and -3.  I don't think -3 will work with key.abs.  Can't think of an elegant way to code in that case.