2016-04-14 55 views

回答

1

你可以,b它是駭人的,並且可能沒有有效的方法。

一種方法是在require之前和之後記錄模塊及其常量和方法的清單,並採取差異。模塊可以通過做被列出:

ObjectSpace.each_object(Module).to_a 

並在他們的常數可以列出這樣做:

ObjectSpace.each_object(Module) 
.with_object([]){|m, a| a.concat(m.constants.map{|c| "#{m}::#{c}"})} 

你可以做類似的事情與方法。在require之前和之後執行此操作,並採取區別。

0

要列出類的所有instance methods

puts Set.instance_methods(false) 

Set類沒有定義任何類級別的方法,但是否確實,一個可能會列出他們:

puts Set.methods(false) 

傳遞無/上述方法的真實參數將導致印出全部該類的方法,包括得自超類的

0

mudasobwa已經向你展示瞭如何列出方法,在Set中定義。

添加幾件事情:

要列出特殊方法:

Set.singleton_methods # on Ruby 2.3 it returns few => [:[], :yaml_tag] 

要列出常數隨走:

Set.constants 

要列出子類:

Set.subclasses # or Set.descendants 
相關問題