Files
linguist/lib/linguist/diff.rb
Arfon Smith a474ffc101 Deep diffing
2014-07-23 10:26:21 -05:00

16 lines
321 B
Ruby

class Hash
def deep_diff(b)
a = self
(a.keys | b.keys).inject({}) do |diff, k|
if a[k] != b[k]
if a[k].respond_to?(:deep_diff) && b[k].respond_to?(:deep_diff)
diff[k] = a[k].deep_diff(b[k])
else
diff[k] = [a[k], b[k]]
end
end
diff
end
end
end