instance method Object#to_hash

to_hash -> Hash[permalink][rdoc][edit]

オブジェクトの Hash への暗黙の変換が必要なときに内部で呼ばれます。デフォルトでは定義されていません。

説明のためここに記載してありますが、このメソッドは実際には Object クラスには定義されていません。必要に応じてサブクラスで定義すべきものです。

このメソッドを定義する条件は、

  • ハッシュが使われるすべての場面で代置可能であるような、
  • ハッシュそのものとみなせるようなもの

という厳しいものになっています。


class Foo
  def to_hash
    {'as' => 24}
  end
end

it = Foo.new
p({:as => 12}.merge(it)) #=> {"as"=>24, :as=>12}