module AccessibleData::HashMethods

Public Instance Methods

deep_merge(original_data, new_data) click to toggle source
# File lib/accessible_data/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) { |data| ... } click to toggle source
# File lib/accessible_data/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