Class: Hash

Inherits:
Object show all
Defined in:
lib/ayadn/extend.rb

Instance Method Summary collapse

Instance Method Details

#deep_diff(b) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
# 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