module Bencview
Public Class Methods
hash_walk(obj) { |obj| ... }
click to toggle source
walk through object, firing `block` on each string leaf
# File bencview.rb, line 12 def self.hash_walk obj, &block if obj.respond_to? :to_hash r = {} obj.to_hash.each do |key, value| r[key] = hash_walk value, &block # recursion end r elsif obj.respond_to? :to_ary obj.to_ary.map { |a| hash_walk a, &block } # recursion elsif obj.kind_of? String yield obj else obj end end