Sha256: 4a44054cadef07df7f4b81400e09d5239a367d6c7bcaade77ab9c000565c599e

Contents?: true

Size: 384 Bytes

Versions: 3

Compression:

Stored size: 384 Bytes

Contents

require 'async'
require 'parse-cron'

module Slacky
  class Cronner
    def self.schedule(cron_string, &blk)
      cron_parser = CronParser.new(cron_string)
      next_time = cron_parser.next(Time.now)
      Async do |task|
        task.sleep next_time - Time.now
        result = yield next_time
        schedule(cron_string, &blk) unless result == :stop
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
slacky-0.3.5 lib/slacky/cronner.rb
slacky-0.3.4 lib/slacky/cronner.rb
slacky-0.3.3 lib/slacky/cronner.rb