3

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

4

3 回答 3

2

如果你load在一个长时间运行的 Ruby 进程中反复 ing 文件,那么这很容易:

$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) }
于 2012-10-10T13:53:05.247 回答
0

为什么不使用 ruby​​ 的覆盖能力或像SimpleCov这样的代码覆盖工具?

于 2012-10-10T19:18:12.403 回答
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

每次我调用它时,这个方法都会给我下一个 no 并且还会跟踪它,这要感谢 Alex D

于 2012-10-11T07:19:39.000 回答