Module: DatesNowValidator

Included in:
RentForm
Defined in:
lib/c80_shared/dates_now_validator.rb

Instance Method Summary collapse

Instance Method Details

#check_dates(errors, from, to) ⇒ Object

Сверит даты между собой. Сверит даты с текущей датой.

Parameters:

  • errors
  • from (nil || String || ::ActiveSupport::TimeWithZone || Time)
  • to (аналогично)


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/c80_shared/dates_now_validator.rb', line 10

def check_dates(errors, from, to)
  errors.add(:from, :invalid_date) unless is_date?(from)
  errors.add(:to,   :invalid_date) unless is_date?(to)

  # если введена хотя бы одна некорректная дата - дальше не проверяем
  return if errors[:from].any? || errors[:to].any?

  from = Time.parse(from) rescue from
  to   = Time.parse(to)   rescue to
  now  = Time.zone.now.beginning_of_day

  conditions = [
    from.beginning_of_day < now,
    to.beginning_of_day   < now,
    from > to
  ]

  if conditions.any?
    errors.add(:from, :invalid_date)
    errors.add(:to, :invalid_date)
  end

end