class Hash

Public Instance Methods

deep_diff(b) click to toggle source
# File lib/ayadn/extend.rb, line 31
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