module I18n::Backend::Flatten

def flatten_keys(hash, escape, prev_key=nil, &block)


=> { "a.b.c" => "d", "a.b.e" => "f", "a.g" => "h", "i" => "j" }
>> { "a" => { "b" => { "c" => "d", "e" => "f" }, "g" => "h" }, "i" => "j"}.wind

Flatten keys for nested Hashes by chaining up keys:
def flatten_keys(hash, escape, prev_key=nil, &block)
  hash.each_pair do |key, value|
    key = escape_default_separator(key) if escape
    curr_key = [prev_key, key].compact.join(FLATTEN_SEPARATOR).to_sym
    yield curr_key, value
    flatten_keys(value, escape, curr_key, &block) if value.is_a?(Hash)
  end
end