Method: DateValidator#validate_before_option

Defined in:
lib/validators/date_validator.rb

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



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/validators/date_validator.rb', line 51

def validate_before_option(record, attribute, value, original_value)
  date, value = date_for(record, value, options[:before])
  return true unless date.present?
  return true if value.present? && date.present? && (value && date && value <= date)

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