module RunPerSecModule
指定秒数ごとにrun関数をループする 各メソッドを必要に応じて再定義して使う。
使い方: someinstance.extend RunPerSecModule someinstance.run(ループのインターバルsec){ __block__for__yield__ }
OR
class ThisDo < MyObject include RunPerSecModule .....
Public Instance Methods
after_run_loop()
click to toggle source
runメソッドが呼ばれるとループのあとで実行される
# File lib/lib/runpersec.rb, line 65 def after_run_loop end
before_run_loop()
click to toggle source
runメソッドが呼ばれるとループの前に一回だけ実行される
# File lib/lib/runpersec.rb, line 49 def before_run_loop end
init_run_per_sec_module()
click to toggle source
外からは使わない 無限ループフラグを立てる
# File lib/lib/runpersec.rb, line 39 def init_run_per_sec_module @loop_flg = true end
loop_hook_post()
click to toggle source
runのループの中でmain_loopのあとで実行される
# File lib/lib/runpersec.rb, line 61 def loop_hook_post end
loop_hook_pre()
click to toggle source
runメソッドのloopの中で最初に実行される
# File lib/lib/runpersec.rb, line 53 def loop_hook_pre end
main_loop()
click to toggle source
runメソッドのloopの中で実行される
# File lib/lib/runpersec.rb, line 57 def main_loop end
run(sec) { || ... }
click to toggle source
main_loop
をループする
sec : ループ間隔 秒
before_run_loop
,ループ,after_run_loopの順番で実行する。 ループの中身はloop_hook_pre,与えられたブロック,main_loop,loop_hook_postの順番で実行する
# File lib/lib/runpersec.rb, line 24 def run(sec) init_run_per_sec_module before_run_loop while @loop_flg loop_hook_pre yield main_loop loop_hook_post sleep sec end after_run_loop end
stop_run()
click to toggle source
runのループを止める
# File lib/lib/runpersec.rb, line 44 def stop_run @loop_flg = false end