class Hash

Public Instance Methods

deepest_point(h=self, steps=0) click to toggle source

A depth-first look to find the deepest point in the Hash. The top level Hash is counted in the total so the final number is the depth of its children + 1. An example:

ahash = { :level1 => { :level2 => {} } }
ahash.deepest_point  # => 3
# File lib/rudy/mixins.rb, line 17
def deepest_point(h=self, steps=0)
  if h.is_a?(Hash)
    steps += 1
    h.each_pair do |n,possible_h|
      ret = deepest_point(possible_h, steps)
      steps = ret if steps < ret
    end
  else
    return 0
  end
  steps
end