Method: DateValidator#validate_after_option

Defined in:
lib/validators/date_validator.rb

#validate_after_option(record, attribute, value, original_value) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/validators/date_validator.rb', line 33

def validate_after_option(record, attribute, value, original_value)
  date, value = date_for(record, value, options[:after])
  return true unless date.present?
  return true if value.present? && date.present? && (value && date && value >= date)

  after_message = ": #{original_value} is not a valid value."
  if options[:after] == :now || options[:after] == :today
    after_message << " Date cannot be in the past"
  elsif options[:after].respond_to?(:strftime)
    after_message << " Date cannot be before #{options[:after]}"
  elsif options[:after].is_a? Proc
    after_message << " Date cannot be before #{options[:after].call(record)}"
  elsif record.respond_to?(options[:after])
    after_message << " Date cannot be before #{options[:after]}"
  end
  after_message
end