def traverse(struct, root = "")
case struct
when Hash then struct.each { |key, value| traverse(value, "#{root}.#{key}") }
else puts "#{root} --> #{struct}"
end
end
traverse({a: 1, b: {c: 2, d: {e: 3, f: 4}}})
ZGVmIHRyYXZlcnNlKHN0cnVjdCwgcm9vdCA9ICIiKQogIGNhc2Ugc3RydWN0CiAgd2hlbiBIYXNoIHRoZW4gc3RydWN0LmVhY2ggeyB8a2V5LCB2YWx1ZXwgdHJhdmVyc2UodmFsdWUsICIje3Jvb3R9LiN7a2V5fSIpIH0KICBlbHNlIHB1dHMgIiN7cm9vdH0gLS0+ICN7c3RydWN0fSIKICBlbmQKZW5kCgp0cmF2ZXJzZSh7YTogMSwgYjoge2M6IDIsIGQ6IHtlOiAzLCBmOiA0fX19KQ==