class Rufus::Scheduler::EveryJob

def initialize(scheduler, duration, opts, block)

def initialize(scheduler, duration, opts, block)
  super(scheduler, duration, opts, block)
  @frequency = Rufus::Scheduler.parse_in(@original)
  fail ArgumentError.new(
    "cannot schedule #{self.class} with a frequency " +
    "of #{@frequency.inspect} (#{@original.inspect})"
  ) if @frequency <= 0
  set_next_time(nil)
end

def next_time_from(time)

def next_time_from(time)
  time + @frequency
end

def set_next_time(trigger_time, is_post=false)

def set_next_time(trigger_time, is_post=false)
  return if is_post
  n = Time.now
  @next_time =
    if @first_at == nil || @first_at < n
      nt = (@next_time || trigger_time || n) + @frequency
      nt > n ? nt : (trigger_time || n) + @frequency
    else
      @first_at
    end
end