On Jun 1, 2007, at 23:14 , Brian Candler wrote:

> I think I'll stick with buf[-10,10] || buf. I was just wondering if  
> I'd
> missed something obvious like buf.last(10), after staring at 'ri  
> String' too
> long.

you could do that too:

 >> "blah blah blah".split(//).last(4).join
=> "blah"

or do what you were looking for:

 >> class String; def last(n=1); self[-n, n] || self; end; end
=> nil
 >> "blah".last(10)
=> "blah"
 >> "blah blah".last(4)
=> "blah"