Newer
Older
2018-fumichan-thesis / practice / vendor / bundle / ruby / 2.5.0 / gems / backports-3.11.4 / lib / backports / 1.8.7 / hash / hash.rb
class Hash
  def hash
    h = 0
    each do |key, value|
      h ^= key.hash ^ value.hash
    end
    h
  end unless {}.hash == {}.hash

  def eql?(other)
    other.is_a?(Hash) &&
      size == other.size &&
      all? do |key, value|
        value.eql?(other.fetch(key){return false})
      end
  end unless {}.eql?({})
end