Hi,

In message "[ruby-talk:01384] Re: Say Hi"
    on 00/02/15, mengx / nielsenmedia.com <mengx / nielsenmedia.com> writes:

|My suggestion was to try to find a more comfortable method name (to me, and
|maybe also to some people) for 
|"unshift", (while shift is from shell, unshift is Perlitical, to my knowledge).
|Since "slice" methods are going to be added, the ambiguity could be less
|for using pop(index=-1) and push(obj,index=-1) once documented,
|(Or "insert(index , obj) may look better?)

I think `insert' may be a good choice.
What do you guys think about adding this method to Array?
And possibly `insert_after' to make emulating `push' easier.

  [1,2,3].insert(0,5)         #=> [5,1,2,3]
  [1,2,3].insert(-1,5)        #=> [1,2,5,3]
  [1,2,3].insert_after(0,5)   #=> [1,5,2,3]
  [1,2,3].insert_after(-1,5)  #=> [1,2,3,5]

But this behavior of `insert' is easily accomplished by []=, e.g.

  [1,2,3][0,0] = 5            #=> [5,1,2,3]
  [1,2,3][-1,0] = 5           #=> [1,2,5,3]

`insert_after' is not as easy as `insert'.

  [1,2,3][0+1,0] = 5          #=> [1,5,2,3]
  a = [1,2,3]
  a[a.size,0] = 5             #=> [1,2,3,5]

In addition, should inserting array be treated specially?  E.g.

  [1,2,3].insert(0,[5,6])         #=> [[5,6],1,2,3] or [5,6,1,2,3]

							matz.