Начиная с нового ответа в ответ на ваши различные комментарии.
В примере кода вы вызываете метод, а не ссылаетесь на него. Вы хотите использовать
method(:foo)
чтобы получить сам метод, а не результат его вызова.
Кроме того, object_id
не является правильным способом проверки, если два метода одинаковы, потому что method(:foo)
каждый раз возвращает новый объект метода. Для аналогии, которая могла бы прояснить это, если вы открываете один и тот же файл дважды, у вас будет два разных дескриптора файла, даже если базовый файл был одинаковым. Вместо этого я думаю, что вы хотите:
method(:foo) == method(:foo2)
который, как вы увидите, если вы попробуете это, возвращает true
.