在其他语言中,我看到了显示构成函数或方法的代码的方法。有没有办法在IRB中做到这一点?
例如,在R中,您可以简单地键入不带()
的函数,它会告诉您调用该函数时将运行什么代码。简单示例here
IRB是否有可能? (最好不要使用pry或任何其他宝石)
答案 0 :(得分:0)
引用https://stackoverflow.com/a/46966145/580346:
method = SomeConstant.method(:some_method_name)
file_path, line = method.source_location
# puts 10 lines start from the method define
IO.readlines(file_path)[line-1, 10]
如果要更方便地使用它,可以打开Method类:
# ~/.irbrc
class Method
def source(limit=10)
file, line = source_location
if file && line
IO.readlines(file)[line-1,limit]
else
nil
end
end
end
将上面的代码粘贴到您的irb中,然后调用YourConstant.method(:your_method).source