Skip to content

Instantly share code, notes, and snippets.

@artemeff
Created July 10, 2015 14:06
Show Gist options
  • Save artemeff/746a6a52f6ee7ead0481 to your computer and use it in GitHub Desktop.
Save artemeff/746a6a52f6ee7ead0481 to your computer and use it in GitHub Desktop.
class Diff
def initialize(a, b)
@a, @b = a, b
end
def left
diff(@a, @b)
end
def right
diff(@b, @a)
end
private
def diff(a, b)
b.dup.delete_if { |k, v| a[k] == v }
.merge!(a.dup.delete_if { |k, v| b.has_key?(k) })
end
end
diff = Diff.new({a: 2, b: 1}, {a: 2, b: 3})
p diff.left # => {:b => 3}
p diff.right # => {:b => 1}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment