Module: Gris::DateTimeHelpers

Extended by:
ActiveSupport::Concern
Defined in:
lib/gris/grape_extensions/date_time_helpers.rb

Instance Method Summary collapse

Instance Method Details

#datetime_params(*keys_to_convert) ⇒ Object

define keys that need to be converted from strings to datetime via Chronic



9
10
11
# File 'lib/gris/grape_extensions/date_time_helpers.rb', line 9

def datetime_params(*keys_to_convert)
  @datetime_keys_to_convert = Set.new(keys_to_convert)
end

#keys_to_convertObject



13
14
15
# File 'lib/gris/grape_extensions/date_time_helpers.rb', line 13

def keys_to_convert
  @datetime_keys_to_convert
end

#process_datetime_params(params) ⇒ Object



17
18
19
20
21
22
23
24
# File 'lib/gris/grape_extensions/date_time_helpers.rb', line 17

def process_datetime_params(params)
  return unless keys_to_convert
  params.each_key do |key|
    if keys_to_convert.include?(key)
      params[key] = string_to_datetime(params[key])
    end
  end
end

#string_to_datetime(string) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/gris/grape_extensions/date_time_helpers.rb', line 26

def string_to_datetime(string)
  return string if string.blank?
  if string.to_s =~ /^\d+$/
    Time.at(string.to_i).to_datetime.utc
  else
    Chronic.parse(string).try(:utc)
  end
end