Method: Hash#deep_diff

Defined in:
lib/sabisu/event.rb

#deep_diff(b) ⇒ Object



171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'lib/sabisu/event.rb', line 171

def deep_diff(b)
  a = self
  (a.keys | b.keys).reduce({}) 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