class Rubies::MyHash

Public Instance Methods

deep_traverse() { |key, value| ... } click to toggle source
# File lib/rubies/random_hash.rb, line 3
def deep_traverse(&block)
  stack = self.map { |k, v| [[k], v] }
  while not stack.empty?
    key, value = stack.pop
    yield(key, value)
    if value.is_a? Hash
      value.each { |k, v| stack.push [key.dup << k, v] }
    end
  end
end