Method: Hash#alias!
- Defined in:
- lib/core/facets/hash/alias.rb
#alias!(newkey, oldkey) ⇒ Object
Modifies the receiving Hash so that the value previously referred to by oldkey is also referenced by newkey; oldkey is retained in the Hash. If oldkey does not exist as a key in the Hash, no change is effected.
Returns a reference to the Hash.
foo = { :name=>'Gavin', 'wife'=>:Lisa }
foo.alias!('name',:name) #=> { :name=>'Gavin', 'name'=>'Gavin', 'wife'=>:Lisa }
foo = { :name=>'Gavin', 'wife'=>:Lisa }
foo.alias!('spouse','wife') #=> { :name=>'Gavin', 'wife'=>:Lisa, 'spouse'=>:Lisa }
foo = { :name=>'Gavin', 'wife'=>:Lisa }
foo.alias!('bar','foo') #=> { :name=>'Gavin', 'wife'=>:Lisa }
Note that if the oldkey is reassigned, the reference will no longer exist, and the newkey will remain as it was.
CREDIT: Gavin Sinclair
TODO: Rename to #aliaskey or something else.
25 26 27 28 |
# File 'lib/core/facets/hash/alias.rb', line 25 def alias!(newkey, oldkey) self[newkey] = self[oldkey] if self.has_key?(oldkey) self end |