Module: Normalizy::Filters::Date

Defined in:
lib/normalizy/filters/date.rb

Class Method Summary collapse

Class Method Details

.call(input, options = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/normalizy/filters/date.rb', line 7

def call(input, options = {})
  if input.is_a?(String)
    return input if input.blank?

    Time.use_zone(time_zone(options)) do
      input = Time.zone.strptime(input, format(options))
    end
  end

  input = input.beginning_of_day if options[:adjust] == :begin && input.respond_to?(:beginning_of_day)
  input = input.end_of_day       if options[:adjust] == :end   && input.respond_to?(:end_of_day)

  input
rescue ArgumentError
  options[:object].errors.add options[:attribute], error_message(input, options)
end