2010-07-29 2 views
23

모듈의 모든 메소드를 나열 할 수 있지만 상속 된 메소드를 어떻게 포함 할 수 있는지 궁금합니다.모듈의 메소드 만 나열 하시겠습니까?

예 :

module Software 
    def exit 
    puts "exited" 
    end 
end 

puts Software.methods 

종료 할뿐만 아니라 모든 상속 된 메소드를 나열합니다.

종료를 나열 할 수 있습니까?

감사

답변

38

실제로 Software.methods이 아닌 목록 exit입니다. Software.instance_methodsexit과 상속 된 메소드를 나열합니다 (이 경우 모듈은 다른 모듈을 포함하지 않으면 어떤 메소드도 상속하지 않으므로이 경우는 아무것도 아닙니다). Software.instance_methods(false)Software에 정의 된 메소드 만 나열합니다.

16
Software.public_instance_methods 

은 예를 들어 작동하는 것 같다.

관련 문제