Issue #12746 has been updated by JustJosh (Joshua Stowers).


Thanks, Matz! I've been wanting this for a while.
I've just made a PR to the Github repo with the changes: https://github.com/ruby/ruby/pull/1574

----------------------------------------
Feature #12746: class Array: alias .prepend to .unshift  ?
https://bugs.ruby-lang.org/issues/12746#change-64012

* Author: shevegen (Robert A. Heiler)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
This code works:

    array = %w( b c )  # => ["b", "c"]
    array.unshift "a"
    array              # => ["a", "b", "c"]

I would like for .prepend to also work on class Array.

Rationale:

I found myself to sometimes .prepend to a String object
in Ruby, which works very well.

Sometimes I do not want to care whether I have a String
or an Array, I just want to prepend stuff (add to the
beginning).

I can do so via .unshift, fair enough, and I also can
use [] such as:

    array[0,0] = 'a'

Which works on both class String and Array.

Since class Hash is sorted (kept in order) these days,
perhaps they can also use a .prepend variant, which
either works for prepending both a key-value pair,
or optionally, to make the value default to nil and
just provide a key (if the user does not need to 
specify a specific value) such as:

    hash.prepend :cat
    hash.prepend cat: :Tom

But primarily, I only ask for class Array since I 
have had use cases for class Array; I did not yet
have a similar use case for class Hash.

Feel free to close this if it is considered unwanted
for any reason!



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>