我相信Ruby,有一种方法可以访问块中所有局部变量的名称。
def some_method(param1, param2)
p local_variables
end
每当调用'some_method'时,将打印出param1和param2。不是价值!但变量名称。
现在,我希望在self.method_added中获得相同的结果。
每当定义一个方法时,都会调用self.method_added。我希望能够访问self.method_added中定义的方法的局部变量的名称。例如,
def self.method_added(method_name)
#prints the variables names of the argument for method method_name
end
def do_something param1, param2
#crazy stuff
end
使用上面的代码,当do_something被创建时,我想访问变量名'param1'和'param2'
有办法做到这一点吗?
答案 0 :(得分:0)
根据您的ruby版本,您可以考虑使用ruby2ruby。
请参阅:http://www.slideshare.net/marc_chung/RubyConfRubyDosRuby
它允许您获取代码的AST(抽象语法树)。但是上次我检查它只能用1.8。
答案 1 :(得分:0)
def self.method_added(method_name)
p self.instance_method(method_name.to_sym).parameters.collect{|g| g[1]}
end