Как получить общедоступные методы класса без унаследованных методов?

Для любого объекта, который я могу вызвать #public_methods , и увидеть все методы, которые он ответит на. Однако я считаю, что иногда было бы удобно получить быстрый список всех общедоступных методов, которые не унаследованы, то есть того, что действительно является частью этого класса.

Я обнаружил в « Простой способ составить список общедоступных методов для объекта Ruby », что, если я использую:

(Foo.public_methods - Object.public_methods).sort

, я могу отфильтровать множество базовых вещей Ruby. Я хотел бы иметь возможность фильтровать все, что было унаследовано на всем протяжении цепочки. Если я знаю родительский класс, я могу использовать его для фильтрации, но я бы хотел придумать общую команду, которая могла бы возвращать массив ненаследуемых общедоступных методов для любого объекта.

35
задан wattostudios 30 April 2012 в 14:23
поделиться