Скажем, у меня есть глубоко вложенный ха sh, такой как
data = {
key1: 'foo baz',
arbitary_key2: {
arbitrary_key3: {
unknown_key4: "bar baz",
unknown_key5: "foo qux"
},
key6: "bar qux"
}}
Есть ли какой-нибудь способ найти совпадение и вернуть только ключи с сохраненными их предками?
> data.deep_select { |key, value| /bar/i.match?(value) }
# => {
arbitary_key2: {
arbitrary_key3: {
unknown_key4: "bar baz"
}
},
key6: "bar qux"
}
Ха shie :: DeepLocate приближает меня так близко, но возвращает только листья найденных результатов, и я теряю родительские ключи по пути. Как я могу сохранить иерархию?