# File lib/map.rb, line 872 def Map._explode(key, value, accum = {:branches => [], :leaves => []}) key = Array(key).flatten case value when Array accum[:branches].push([key, Array]) value.each_with_index do |v, k| Map._explode(key + [k], v, accum) end when Hash accum[:branches].push([key, Map]) value.each do |k, v| Map._explode(key + [k], v, accum) end else accum[:leaves].push([key, value]) end accum end