Skip to content

Instantly share code, notes, and snippets.

@kachick
Created December 5, 2015 08:38
Show Gist options
  • Save kachick/4b51446ce98f7207a07c to your computer and use it in GitHub Desktop.
Save kachick/4b51446ce98f7207a07c to your computer and use it in GitHub Desktop.
Hash#p_diff
class Hash
def p_diff(b)
merged_keys = keys | b.keys
merged_keys.each do |k|
case
when key?(k) && b.key?(k)
value = self[k]
if value == b[k]
puts "a,b: #{k.inspect} => #{value.inspect} == #{b[k].inspect}"
else
puts "a,b: #{k.inspect} => #{value.inspect} != #{b[k].inspect}"
end
when key?(k)
puts "a: #{k.inspect} => #{self[k].inspect}"
when b.key?(k)
puts "b: #{k.inspect} => #{b[k].inspect}"
else
raise
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment