Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library _builtin > class Hash > replace

instance method Hash#replace

replace(other) -> self

ハッシュの内容を other の内容で置き換えます。

デフォルト値の設定もotherの内容になります。 otherがハッシュではない場合、otherのメソッドto_hashを使って暗黙の変換を試みます。

self = other.to_hash.dup と同じです。

[PARAM] other:
ハッシュまたはメソッド to_hash でハッシュに変換できるオブジェクトです。
[RETURN]
self を返します。
foo = {1 => 'a', 2 => 'b'}
bar = {2 => 'B', 3 => 'C'}

foo.replace(bar)
p foo  #=> {2=>"B", 3=>"C"}

zoo = {}
zoo = bar.dup
p zoo  #=> {2=>"B", 3=>"C"}

class Foo
  def to_hash
    {:japan => 'kyoto'}
  end
end

h = Hash.new
h.replace(Foo.new) #暗黙の変換
p h #=> {:japan=>"kyoto"}

[SEE_ALSO] Hash#dup, Hash#merge, Object#to_hash