fork download
  1. def traverse(struct, root = "")
  2. case struct
  3. when Hash then struct.each { |key, value| traverse(value, "#{root}.#{key}") }
  4. else puts "#{root} --> #{struct}"
  5. end
  6. end
  7.  
  8. traverse({a: 1, b: {c: 2, d: {e: 3, f: 4}}})
Success #stdin #stdout 0s 29112KB
stdin
Standard input is empty
stdout
.a --> 1
.b.c --> 2
.b.d.e --> 3
.b.d.f --> 4