class ClockworkMocks::ClockworkTask
Attributes
due[R]
name[R]
Public Class Methods
new(interval, name, hash, block)
click to toggle source
# File lib/clockwork_mocks/clockwork_task.rb, line 5 def initialize(interval, name, hash, block) @interval = interval @name = name @hash = hash || {} @block = block @due = calc_due end
Public Instance Methods
perform(handler = nil)
click to toggle source
# File lib/clockwork_mocks/clockwork_task.rb, line 19 def perform(handler = nil) if @block @block.call elsif handler handler.call(@name, Time.now.utc) end @due = calc_due end
reset!()
click to toggle source
# File lib/clockwork_mocks/clockwork_task.rb, line 14 def reset! @due = Time.now.utc @due = calc_due end
Private Instance Methods
calc_due()
click to toggle source
# File lib/clockwork_mocks/clockwork_task.rb, line 32 def calc_due ndue = Time.at((due || Time.now.utc).to_f + @interval).utc 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