Создание хэшей хэшей в Ruby позволяет осуществлять удобный (или более) двухмерный поиск. Однако при вставке всегда нужно проверять, существует ли первый индекс в хэше. Например:
h = Hash.new
h['x'] = Hash.new if not h.key?('x')
h['x']['y'] = value_to_insert
Было бы предпочтительно сделать следующее, когда новый хэш создается автоматически:
h = Hash.new
h['x']['y'] = value_to_insert
Аналогичным образом, при поиске значения, в котором первый индекс еще не существует, было бы предпочтительнее, если возвращается nil вместо получения неопределенного метода для ошибки '[]'.
looked_up_value = h['w']['z']
Можно создать класс-оболочку Hash с таким поведением, но существует ли идиома Ruby для выполнения этой задачи?