Method: Xcodeproj::Differ.hash_diff

Defined in:
lib/xcodeproj/differ.rb

.hash_diff(value_1, value_2, options) ⇒ Object

Computes the recursive difference of two hashes.

See Also:



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/xcodeproj/differ.rb', line 85

def self.hash_diff(value_1, value_2, options)
  ensure_class(value_1, Hash)
  ensure_class(value_2, Hash)
  return nil if value_1 == value_2

  result = {}
  all_keys = (value_1.keys + value_2.keys).uniq
  all_keys.each do |key|
    key_value_1 = value_1[key]
    key_value_2 = value_2[key]
    diff = diff(key_value_1, key_value_2, options)
    if diff
      result[key] = diff if diff
    end
  end
  if result.empty?
    nil
  else
    result
  end
end