Method: RunSignup::DataCoercion#coerce_value_from_api

Defined in:
lib/run_signup/data_coercion.rb

#coerce_value_from_api(value) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/run_signup/data_coercion.rb', line 16

def coerce_value_from_api value
  if value.is_a?(Array)
    value.map { |v1| coerce_value_from_api(v1) }
  elsif value.is_a?(Hash)
    coerce_from_api(value)
  else
    case value
    when 'T'
      true
    when 'F'
      false
    when /^\d{1,2}\/\d{1,2}\/\d{4} \d{2}:\d{2}$/
      DateTime.strptime(value, '%m/%d/%Y %H:%M').to_s
    when /^\d{1,2}\/\d{1,2}\/\d{4}$/
      Date.strptime(value, '%m/%d/%Y').to_s
    else
      value
    end
  end
end