Ruby/Reflection/protected instance methods

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск

look at the object"s constants,local, and instance variables.

class Demo 
    @@var = 99 
    CONST = 1.23 
    private 
    def private_method 
    end 
    protected 
    def protected_method 
    end 
    public 
    def public_method 
        @inst = 1 
        i = 1 
        j =2 
        local_variables 
    end 
    def Demo.class_method 
    end 
end 
 
Demo.private_instance_methods(false) # ["private_method"] 
Demo.protected_instance_methods(false) # ["protected_method"] 
Demo.public_instance_methods(false) # ["public_method"] 
Demo.singleton_methods(false) # ["class_method"] 
Demo.class_variables # ["@@var"] 
Demo.constants 
Demo.superclass.constants # ["CONST"] 
demo = Demo.new 
demo.instance_variables # [] 
# Get "public_method" to return its local variables 
# and set an instance variable 
demo.public_method # ["i", "j"] 
demo.instance_variables # ["@inst"]