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