module HashExt::Traverse

Public Class Methods

traverse(hash, &block) click to toggle source
# File lib/hash_ext/traverse.rb, line 3
def self.traverse(hash, &block)
  hash.inject({}) do |h,(k,v)|
    if Hash === v
      v = traverse(v,&block)
    end
    nk, nv = block.call(k,v)
    h[nk] = nv unless nk.nil?
    h
  end
end