class Dry::Schema::KeyValidator
def key_paths(hash)
- Api: - private
def key_paths(hash) hash.flat_map { |key, value| case value when ::Hash if value.empty? [key.to_s] else [key].product(key_paths(hash[key])).map { _1.join(DOT) } end when ::Array hashes_or_arrays = hashes_or_arrays(value) if hashes_or_arrays.empty? [key.to_s] else hashes_or_arrays.flat_map.with_index { |el, idx| key_paths(el).map { ["#{key}[#{idx}]", *_1].join(DOT) } } end else key.to_s end } end