class Hash
def diff(other)
{}.diff(1 => 2) # => {1 => 2}
{1 => 2}.diff(1 => 3) # => {1 => 2}
{1 => 2}.diff(1 => 2) # => {}
Returns a hash that represents the difference between two hashes.
def diff(other) ActiveSupport::Deprecation.warn "Hash#diff is no longer used inside of Rails, and is being deprecated with no replacement. If you're using it to compare hashes for the purpose of testing, please use MiniTest's assert_equal instead." dup. delete_if { |k, v| other[k] == v }. merge!(other.dup.delete_if { |k, v| has_key?(k) }) end