Я просто врываюсь в мир рубинов, и мне нужна помощь .
Предположим, что b
равно nil
.
Я бы хотел, чтобы следующий код возвращал nil
вместо «NoMethodError: undefined method»
a.b.c("d").e
Первое, что я попробовал, - это перегрузить метод missing_method NilClass, чтобы он просто возвращал ноль. Это то поведение, которое я хочу, за исключением того, что я не хочу быть таким навязчивым.
Мне бы очень понравилось, если бы я мог сделать что-то вроде этого
SafeNils.a.b.c("d").e
Так что это похоже на чистый способ локальной перегрузки поведения NilClass.
Я хотел бы услышать некоторые идеи или полезные ресурсы, чтобы разобраться в этом. Я также открыт для других подходов, если они достаточно чистые.
Большое спасибо.