module Dapp::CoreExt::Hash

Public Instance Methods

in_depth_merge(hash) click to toggle source
# File lib/dapp/core_ext/hash.rb, line 4
def in_depth_merge(hash) # do not conflict with activesupport`s deep_merge
  merge(hash) do |_, v1, v2|
    if v1.is_a?(::Hash) && v2.is_a?(::Hash)
      v1.in_depth_merge(v2)
    elsif v1.is_a?(::Array) || v2.is_a?(::Array)
      [v1, v2].flatten
    else
      v2
    end
  end
end
symbolize_keys() click to toggle source
# File lib/dapp/core_ext/hash.rb, line 16
def symbolize_keys
  transform_keys { |key| key.to_sym rescue key }
end

Private Instance Methods

transform_keys() { |key| ... } click to toggle source
# File lib/dapp/core_ext/hash.rb, line 22
def transform_keys
  result = {}
  each_key do |key|
    result[yield(key)] = self[key]
  end
  result
end