Sha256: a489be14d8171178bfefe0a84f7cb504812b1cc3b894f606e73560255d33748f

Contents?: true

Size: 1.47 KB

Versions: 12

Compression:

Stored size: 1.47 KB

Contents

# 指定秒数ごとにrun関数をループする
# 各メソッドを必要に応じて再定義して使う。
#
#   使い方:
#   someinstance.extend RunPerSecModule
#   someinstance.run(ループのインターバルsec){
#     __block__for__yield__
#   }
#   
# OR
#   
#   class ThisDo < MyObject
#     include RunPerSecModule
#   .....
# 
module RunPerSecModule
  # ループフラグ
  @loop_flg

  # main_loopをループする
  #   sec : ループ間隔 秒
  # before_run_loop,ループ,after_run_loopの順番で実行する。
  # ループの中身はloop_hook_pre,与えられたブロック,main_loop,loop_hook_postの順番で実行する
  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

  # 外からは使わない
  # 無限ループフラグを立てる
  def init_run_per_sec_module
	@loop_flg = true
  end

  # runのループを止める
  def stop_run
    @loop_flg = false
  end
  
  # runメソッドが呼ばれるとループの前に一回だけ実行される
  def before_run_loop
  end

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

  # runメソッドのloopの中で実行される
  def main_loop
  end

  # runのループの中でmain_loopのあとで実行される
  def loop_hook_post
  end
  
  # runメソッドが呼ばれるとループのあとで実行される
  def after_run_loop
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
my-lib-0.2.5 lib/lib/runpersec.rb
my-lib-0.2.4 lib/lib/runpersec.rb
my-lib-0.2.3 lib/lib/runpersec.rb
my-lib-0.2.2 lib/lib/runpersec.rb
my-lib-0.2.1 lib/lib/runpersec.rb
my-lib-0.0.2.0 lib/lib/runpersec.rb
my-lib-0.0.1.8 lib/lib/runpersec.rb
my-lib-0.0.1.7 lib/lib/runpersec.rb
my-lib-0.0.1.6 lib/lib/runpersec.rb
my-lib-0.0.1.5 lib/lib/runpersec.rb
my-lib-0.0.1.4 lib/lib/runpersec.rb
my-lib-0.0.1.3 lib/lib/runpersec.rb