test
Nested
Definitions
def extract_nested_value(hash, top_key, nested_key, index)
Navigate into nested change structures. changes[:spec] could be [old_hash, new_hash] or a nested diff hash.
Implementation
def extract_nested_value(hash, top_key, nested_key, index)
val = hash[top_key]
case val
when Array
# [old_hash, new_hash]
val[index].is_a?(Hash) ? val[index][nested_key] : val[index]
when Hash
# nested diff: { key: [old, new] }
val[nested_key].is_a?(Array) ? val[nested_key][index] : val[nested_key]
end
end