ruby / irb获取方法的范围信息

时间:2017-12-27 19:55:58

标签: ruby reflection

IRB可以告诉我类/对象/变量/方法的范围吗?

例如puts

我想像describe puts之类的东西会输出信息,这些信息是一个对象的方法,也可能是它的源位置。

1 个答案:

答案 0 :(得分:0)

对于在Kernel / Object上定义的方法,可以使用:

method :puts
#⇒ #<Method: Object(Kernel)#puts> 

对于未在任何地方包含的模块/类上定义的方法,需要完全限定名称:

Integer.instance_method :to_s
#⇒ #<UnboundMethod: Integer#to_s> 

对于在ruby中定义的方法(不在中),也可以查询源位置:

URI.method(:split).source_location
#⇒ ["/path_to_ruby/uri/common.rb", 192]