如何在Ruby中获取当前文件和行号?

前端之家收集整理的这篇文章主要介绍了如何在Ruby中获取当前文件和行号?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想实现这样的日志函数
def mylog(str)
   puts __FILE__,":"__LINENO__,":",str  # Here how to get __FILE__ and __LINENO__ is my question.
end

当我打电话给mylog:

mylog 'hello' # say I call this in my.rb line 10

我期待输出

my.rb:10:hello

请帮助正确实现mylog功能.

解决方法

你必须使用来电者
def mylog(str)
  caller_line = caller.first.split(":")[1]
  puts "#{__FILE__} : #{caller_line} : #{str}"  
end

您可能想要知道调用mylog的文件

def mylog(str)
  caller_infos = caller.first.split(":")
  puts "#{caller_infos[0]} : #{caller_infos[1]} : #{str}"  
end
原文链接:https://www.f2er.com/ruby/269712.html

猜你在找的Ruby相关文章