2010-07-29 20 views
23

Me pregunto cómo se pueden enumerar todos los métodos en un módulo, pero sin incluir los métodos heredados.¿Listar métodos solo en un módulo?

por ejemplo.

module Software 
    def exit 
    puts "exited" 
    end 
end 

puts Software.methods 

Lista no solo de la salida, sino de todos los métodos heredados.

¿Es posible solo listar la salida?

Gracias

Respuesta

38

En realidad Software.methodsno lista exit. Software.instance_methods mostrará exit, así como cualquier método heredado (que en este caso no es nada porque los módulos no heredan ningún método a menos que incluya otro módulo). Software.instance_methods(false) solo mostrará los métodos definidos en Software.

16
Software.public_instance_methods 

parece funcionar por su ejemplo.

Cuestiones relacionadas