Module: DataAccessible::HashMethods

Defined in:
lib/data_accessible/hash_methods.rb

Class Method Summary collapse

Class Method Details

.deep_merge(original_data, new_data) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/data_accessible/hash_methods.rb', line 5

def deep_merge(original_data, new_data)
  merger = proc do |_key, v1, v2|
    v1.is_a?(Hash) && v2.is_a?(Hash) ? v1.merge(v2, &merger) : v2
  end

  original_data.merge(new_data, &merger)
end

.each_hash(data, &block) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/data_accessible/hash_methods.rb', line 13

def each_hash(data, &block)
  case data
    when Hash
      yield data
    when Array
      data.each { |element| each_hash(element, &block) }
  end
  data
end