Sha256: c2f7594ee07b964557576244e91d8b00baac4332e28831a1c8a4fc433d08f68e
Contents?: true
Size: 825 Bytes
Versions: 2
Compression:
Stored size: 825 Bytes
Contents
# frozen_string_literal: true module ClockworkMocks class ClockworkTask def initialize(interval, name, hash, block) @interval = interval @name = name @hash = hash || {} @block = block @due = calc_due end def reset! @due = Time.now @due = calc_due end def perform(handler = nil) if @block @block.call elsif handler handler.call(@name, Time.now) end @due = calc_due end attr_reader :due, :name private def calc_due ndue = Time.at((due || Time.now).to_f + @interval) return ndue unless @hash[:at] at_split = @hash[:at].split(':').map(&:to_i) new_due = ndue.change(hour: at_split[0], minute: at_split[1]) new_due <= ndue ? new_due : (new_due - 1.day) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
clockwork-mocks-1.3.0 | lib/clockwork_mocks/clockwork_task.rb |
clockwork-mocks-1.2.0 | lib/clockwork_mocks/clockwork_task.rb |