Подтвердить что ты не робот

Перечислить методы только в модуле?

Интересно, как можно перечислять все методы в модуле, но не включая унаследованные методы.

например.

module Software
  def exit
    puts "exited"
  end
end

puts Software.methods

Перечислит не только выход, но и все унаследованные методы.

Можно ли просто вывести выход?

Спасибо

4b9b3361

Ответ 1

На самом деле Software.methods не будет отображаться exit. Software.instance_methods отобразит exit, а также любые унаследованные методы (которые в этом случае не являются ничем, потому что модули не наследуют никаких методов, если вы не включили другой модуль). Software.instance_methods(false) перечисляет только методы, определенные в Software.

Ответ 2

Software.public_instance_methods

похоже, работает для вашего примера.