Иногда, когда я передаю имя метода в качестве аргумента, я нахожусь в поиске функции идентификации, такой, что any_obj.send(:identity) == any_obj
, поэтому вместо этого:
(transform.nil?) ? my_obj : my_obj.send(transform)
Я мог просто написать
my_obj.send(transform || :identity)
(Это немного надуманный пример - функция идентификации может сделать больше, чем сэкономить несколько нажатий клавиш в более сложных примерах.)
Было бы достаточно легко открыть определение объекта и добавить его, но есть ли что-то уже там, что я забыл? Кто-нибудь еще хочет этого?
P.S.: Я знаю, что мой пример действительно должен быть указан any_obj.send(:identity).equal?(any_obj)
, но иногда педантизм скрывает вопрос.