Module: Accessible::HashMethods

Extended by:
HashMethods
Included in:
HashMethods
Defined in:
lib/accessible/hash_methods.rb

Instance Method Summary collapse

Instance Method Details

#deep_merge(orig_data, new_data) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/accessible/hash_methods.rb', line 16

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

  orig_data.merge(new_data, &merger)
end

#each_hash(data, &block) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/accessible/hash_methods.rb', line 5

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

  data
end