From: gotoken@... (GOTO Kentaro) Date: 2000-10-18T05:49:03+09:00 Subject: [ruby-talk:5653] Re: Array#insert In message "[ruby-talk:5652] Array#insert" on 00/10/18, Aleksi Niemel� writes: >I was looking up how Array#insert should be called. Uh, there's none! Maybe >there's some other suitable method somewhere in the middle of the other, but >I didn't spot it fast. > >Of course ary[index,0] = stuff. But it's very annoying format, when you >could be more explicit too. Besides there's always the surprise of > > ruby -e'a=[1,2,3]; a[1,0]=[4,5]; p a;' > [1, 4, 5, 2, 3] > ruby -e'a=[1,2,3]; a[1,0]=[[4,5]]; p a;' > [1, [4, 5], 2, 3] > >lurking, and I'd expect the first example output what the second does. How about this? class Array def insert(pos, *obj) self[pos,0] = obj self end end a = [1,2,3] ; a.insert(1, [4, 5]) ; p a #=> [1, [4, 5], 2, 3] a = [1,2,3] ; a.insert(1, 4, 5 ) ; p a #=> [1, 4, 5, 2, 3] -- gotoken