每次在ruby中执行文件时,有没有办法增加一个数字

时间:2012-10-10 13:29:28

标签: ruby code-coverage

有没有办法增加一个号码。每次在ruby中执行文件。 我在这件事上找不到任何东西。 我想宣布一个不。然后每次执行它所驻留的文件时它都会递增。 我可以使用文件来跟踪最后一个号码。使用但有任何简单的解决方案

3 个答案:

答案 0 :(得分:2)

如果你在长期运行的Ruby进程中反复load该文件,那么这很容易:

$times_loaded ||= 0
$times_loaded += 1

如果您每次都在新的Ruby解释器进程中运行该文件,那么您将不得不使用一个文件(它无法以任何其他方式工作)。你可以让Ruby文件自我修改:

# THIS FILE HAS RUN 0 TIMES
me = File.read(__FILE__)
me.sub!(/THIS FILE HAS RUN \d+ TIMES/) { |s| "THIS FILE HAS RUN #{s[/\d+/].to_i + 1} TIMES" }
File.open(__FILE__,'w') { |f| f.write(me) }

答案 1 :(得分:0)

为什么不使用ruby的coverage capability或代码覆盖率工具,例如SimpleCov

答案 2 :(得分:0)

# 0 TIMES
def  get_no
  me = File.read(__FILE__)
  me.sub!(/ \d+ TIMES/) { |s| " #{s[/\d+/].to_i + 1} TIMES" }
  l=me.split("\n")
  File.open(__FILE__,'w') { |f| f.write(me) }
  return l[0][/\d+/]
end

这个方法在我每次打电话时都会给我下一个没有,并且由于Alex D

而会跟踪它。