Комментарии 3
Вы правы по поводу использования public_send.
По поводу сортировки: ваши примеры показывают, как можно определить методы sort_by_age и sort_by_name. В статье же рассматриваются разные способы вызова уже определённых методов.
Ещё пример из статьи упрощённый: он не фильтрует параметры (добавлю упоминание об этом), но обнажает возможную проблему с читаемостью.
По поводу сортировки: ваши примеры показывают, как можно определить методы sort_by_age и sort_by_name. В статье же рассматриваются разные способы вызова уже определённых методов.
Ещё пример из статьи упрощённый: он не фильтрует параметры (добавлю упоминание об этом), но обнажает возможную проблему с читаемостью.
Для меня мысль "о, а тут мы просто сделаем массив из имен методов и сделаем им всем send" — верный признак того, что я одной ногой в кроличьей норе метапрограммирования, и пора спросить себя, уверен ли я в том, что делаю (я конечно же всегда отвечаю на этот вопрос "конечно же да!")
Такие штуки позволяют Руби быть просто офигительным языком, просто надо быть аккуратным =) Providing sharp knives, как говорит DHH
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Использование send для удобства, от безысходности и ради развлечения