Нильс и объединение методов

Я просто врываюсь в мир рубинов, и мне нужна помощь .

Предположим, что b равно nil .

Я бы хотел, чтобы следующий код возвращал nil вместо «NoMethodError: undefined method»

a.b.c("d").e

Первое, что я попробовал, - это перегрузить метод missing_method NilClass, чтобы он просто возвращал ноль. Это то поведение, которое я хочу, за исключением того, что я не хочу быть таким навязчивым.

Мне бы очень понравилось, если бы я мог сделать что-то вроде этого

SafeNils.a.b.c("d").e

Так что это похоже на чистый способ локальной перегрузки поведения NilClass.

Я хотел бы услышать некоторые идеи или полезные ресурсы, чтобы разобраться в этом. Я также открыт для других подходов, если они достаточно чистые.

Большое спасибо.

9
задан David Moles 11 December 2015 в 22:10
поделиться