Hash获取由点分隔的所有键(带有嵌套)的列表的便捷方法是什么?
鉴于我有一个哈希:
{ level1: { level21: { level31: 'val1', 
                       level32: 'val2' }, 
            level22: 'val3' } 
}
表示哈希中所有关键路径的所需输出(字符串数组):
level1.level21.level31
level1.level21.level32
level1.level22
我目前的解决方案:
class HashKeysDumper
  def self.dump(hash)
    hash.map do |k, v|
      if v.is_a? Hash
        keys = dump(v)
        keys.map { |k1| [k, k1].join('.') }
      else
        k.to_s
      end
    end.flatten
  end
end
它也可作为gist(带有规格)。