Skip to content

Instantly share code, notes, and snippets.

@mitchty
Created November 12, 2011 01:01
Show Gist options
  • Save mitchty/1359834 to your computer and use it in GitHub Desktop.
Save mitchty/1359834 to your computer and use it in GitHub Desktop.
Dumb monkeypatch for Hash
class Hash
def diff(this)
self.dup.delete_if { |key, val|
this[key] == val
}.merge(this.dup.delete_if { |key, val| self.has_key?(key) } )
end
end
@mitchty
Copy link
Author

mitchty commented Nov 12, 2011

(Ab)used like this:
main> {a: :a, b: :b }.diff({a: :b})
=> {:a=>:a, :b=>:b}
main> {a: :a, b: :b }.diff({a: :a})
=> {:b=>:b}
main> {a: :a, b: :b }.diff({a: :a, b: :b})
=> {}
main> {a: :a, b: :b }.diff({a: :a, b: :b}).size
=> 0
main> {a: :a, b: :b }.diff({a: :a, b: 1}).size
=> 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment