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 に答える