Module: RunPerSecModule

Defined in:
lib/lib/runpersec.rb

Overview

指定秒数ごとにrun関数をループする 各メソッドを必要に応じて再定義して使う。

使い方:
someinstance.extend RunPerSecModule
someinstance.run(ループのインターバルsec){
  __block__for__yield__
}

OR

class ThisDo < MyObject
  include RunPerSecModule
.....

Instance Method Summary collapse

Instance Method Details

#after_run_loopObject

runメソッドが呼ばれるとループのあとで実行される



65
66
# File 'lib/lib/runpersec.rb', line 65

def after_run_loop
end

#before_run_loopObject

runメソッドが呼ばれるとループの前に一回だけ実行される



49
50
# File 'lib/lib/runpersec.rb', line 49

def before_run_loop
end

#init_run_per_sec_moduleObject

外からは使わない 無限ループフラグを立てる



39
40
41
# File 'lib/lib/runpersec.rb', line 39

def init_run_per_sec_module
	@loop_flg = true
end

#loop_hook_postObject

runのループの中でmain_loopのあとで実行される



61
62
# File 'lib/lib/runpersec.rb', line 61

def loop_hook_post
end

#loop_hook_preObject

runメソッドのloopの中で最初に実行される



53
54
# File 'lib/lib/runpersec.rb', line 53

def loop_hook_pre
end

#main_loopObject

runメソッドのloopの中で実行される



57
58
# File 'lib/lib/runpersec.rb', line 57

def main_loop
end

#run(sec) ⇒ Object

main_loopをループする

sec : ループ間隔 秒

before_run_loop,ループ,after_run_loopの順番で実行する。 ループの中身はloop_hook_pre,与えられたブロック,main_loop,loop_hook_postの順番で実行する



24
25
26
27
28
29
30
31
32
33
34
35
# 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_runObject

runのループを止める



44
45
46
# File 'lib/lib/runpersec.rb', line 44

def stop_run
  @loop_flg = false
end