class RuboCop::Cop::Rails::DurationArithmetic

2.days.from_now
1.minute.ago
# good
3.days - 1.hour
created_at - 1.minute
Date.yesterday + 3.days
# good - using relative would make it harder to express and read
Time.current + 2.days
Time.current - 1.minute
# bad
@example
Checks if a duration is added to or subtracted from ‘Time.current`.

def corrected_source(operator, duration)

def corrected_source(operator, duration)
  if operator == :-
    "#{duration.source}.ago"
  else
    "#{duration.source}.from_now"
  end
end

def on_send(node)

def on_send(node)
  duration_arithmetic_argument?(node) do |*operation|
    add_offense(node) do |corrector|
      corrector.replace(node, corrected_source(*operation))
    end
  end
end