Introspect,内省,是指从程序自身出发,审视程序各方面的能力。这个过程又称为Reflection,反射。
孔子曰,吾日三省吾身。于人于程序,内省都是非常重要的。
1. Looking at objects
ObjectSpace.each_object([module]) {|obj| ... } -> fixnum
ObjectSpace.each_object([module]) -> an_enumerator
ObjectSpace::each_object :
Calls the block once for each living, nonimmediate object in this Ruby process.(Immediate objects (Fixnums, Symbols true,false, and nil) are never returned. )
If module is specified, calls the block for only those classes or modules that match (or are a subclass of) module. Returns the number of objects found.
2. Looking inside objects
methods
respond_to?(symbol, include_private=false) Private methods are included in the search only if the optional second parameter evaluates to true.