class ValidDateRangeValidator

Public Instance Methods

validate_each(record, attribute, value) click to toggle source
# File lib/sift/validators/valid_date_range_validator.rb, line 2
def validate_each(record, attribute, value)
  record.errors.add attribute, "is invalid" unless valid_date_range?(value)
end

Private Instance Methods

valid_date?(date) click to toggle source
# File lib/sift/validators/valid_date_range_validator.rb, line 15
def valid_date?(date)
  !!DateTime.parse(date.to_s)
rescue ArgumentError
  false
end
valid_date_range?(date_range) click to toggle source
# File lib/sift/validators/valid_date_range_validator.rb, line 8
def valid_date_range?(date_range)
  from_date_string, end_date_string = date_range.to_s.split("...")
  return true unless end_date_string # validated by other validator

  [from_date_string, end_date_string].all? { |date| valid_date?(date) }
end