class Rufus::Scheduler::RepeatJob

def first_at=(first)

def first_at=(first)
  return (@first_at = nil) if first == nil
  n0 = Time.now
  n1 = n0 + 0.003
  first = n0 if first == :now || first == :immediately || first == 0
  @first_at = Rufus::Scheduler.parse_to_time(first)
  @first_at = n1 if @first_at >= n0 && @first_at < n1
  fail ArgumentError.new(
    "cannot set first[_at|_in] in the past: " +
    "#{first.inspect} -> #{@first_at.inspect}"
  ) if @first_at < n0
  @first_at
end