Method: Hash#recurse
- Defined in:
- lib/hash_extension.rb
#recurse(include_root = false, depth = [], &block) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/hash_extension.rb', line 24 def recurse(include_root=false, depth=[], &block) self.each_pair { |k,v| if v.is_a? Hash if include_root block.call(depth + [k], v) end depth.push k v.recurse(include_root, depth, &block) else block.call(depth + [k], v) #return "#{depth + [k]}: #{v.inspect}" end } depth.pop end |