Sha256: 81ce8701044b6a5b0d3cabc91a148555d3f9aa512735646631d7db2546ddd516

Contents?: true

Size: 506 Bytes

Versions: 8

Compression:

Stored size: 506 Bytes

Contents

class LoopDance::Task
  attr_accessor :last_run_at, :block, :interval
  
  def initialize( interval, &block )
    run_count=0
    self.interval = interval
    self.block = block
    self.last_run_at = Time.now
  end
  
  def time_to_run?
    !last_run_at || last_run_at + interval <= Time.now
  end
  
  def run
    block.call
  rescue Exception => e
    puts "Uncaught exception bubbled up: \n#{e.class}: #{e.message}\n\t#{e.backtrace.join("\n\t")} "
  ensure
    self.last_run_at = Time.now
  end
  
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
loop_dance-0.4.1 lib/loop_dance/task.rb
loop_dance-0.4.0 lib/loop_dance/task.rb
loop_dance-0.3.1 lib/loop_dance/task.rb
loop_dance-0.2.5 lib/loop_dance/task.rb
loop_dance-0.2.4 lib/loop_dance/task.rb
loop_dance-0.2.3 lib/loop_dance/task.rb
loop_dance-0.2.2 lib/loop_dance/task.rb
loop_dance-0.2.0 lib/loop_dance/task.rb