# frozen_string_literal: true
class AfterValidator < ActiveModel::EachValidator
DEFAULT_MESSAGE = _("must be after %{date}")
def validate_each(record, attribute, value)
return if value.nil?
return if record.persisted? && options[:on].to_s == 'create'
return if record.new_record? && options[:on].to_s == 'update'
date = options[:date]
msg = options.fetch(:message, DEFAULT_MESSAGE % { date: options[:date] })
record.errors.add(attribute, msg) if value.to_date < options[:date]
end
end