Я хочу "сгладить" (не в классическом смысле .flatten
) вниз хэш с различными уровнями глубины, например:
{
:foo => "bar",
:hello => {
:world => "Hello World",
:bro => "What up dude?",
},
:a => {
:b => {
:c => "d"
}
}
}
вниз в хэш с одним уровнем, и все вложенные ключи объединены в одну строку, поэтому он станет следующим:
{
:foo => "bar",
:"hello.world" => "Hello World",
:"hello.bro" => "What up dude?",
:"a.b.c" => "d"
}
но я не могу придумать, как это сделать. Это немного напоминает вспомогательные функции deep_
, которые Rails добавляет к хэшам, но не совсем то же самое. Я знаю, что рекурсия была бы здесь, но я никогда не писал рекурсивную функцию в Ruby.