# frozen_string_literal: true module DeepFindHelper def deep_find(hash, key) return nil unless hash.is_a?(Hash) hash.filter do |k, v| if v.is_a?(Hash) deep_find(v, key) else k == key end end end module_function :deep_find refine Hash do include DeepFindHelper def deep_find(key) DeepFindHelper.deep_find(self, key) end end end