class LoopDance::Task

Attributes

block[RW]
dancer[RW]
interval[RW]
last_run_at[RW]

Public Class Methods

new( dancer, interval, &block ) click to toggle source
# File lib/loop_dance/task.rb, line 4
def initialize( dancer, interval, &block )
  run_count=0
  self.dancer = dancer
  self.interval = interval
  self.block = block
  
  # Run tasks when start dancer
  # self.last_run_at = Time.now
end

Public Instance Methods

run() click to toggle source
# File lib/loop_dance/task.rb, line 18
def run
  block.call
rescue Exception => e
  puts "Uncaught exception bubbled up: \n#{e.class}: #{e.message}\n\t#{e.backtrace.join("\n\t")} "
  dancer.send(:stop_dancer)
ensure
  self.last_run_at = Time.now
end
time_to_run?() click to toggle source
# File lib/loop_dance/task.rb, line 14
def time_to_run?
  !last_run_at || last_run_at + interval <= Time.now
end