Module: Likeno::HashConverters

Included in:
Entity
Defined in:
lib/likeno/helpers/hash_converters.rb

Instance Method Summary collapse

Instance Method Details

#convert_to_hash(value) ⇒ Object



25
26
27
28
29
30
31
32
33
# File 'lib/likeno/helpers/hash_converters.rb', line 25

def convert_to_hash(value)
  return value if value.nil?
  return value.collect { |element| convert_to_hash(element) } if value.is_a? Array
  return value.to_hash if value.respond_to?(:to_hash)
  return date_time_to_s(value) if value.is_a? DateTime
  return 'INF' if value.is_a?(Float) && value.infinite? == 1
  return '-INF' if value.is_a?(Float) && value.infinite? == -1
  value.to_s
end

#date_time_to_s(date) ⇒ Object



20
21
22
23
# File 'lib/likeno/helpers/hash_converters.rb', line 20

def date_time_to_s(date)
  milliseconds = '.' + (date.sec_fraction * 60 * 60 * 24 * 1000).to_s
  date.to_s[0..18] + milliseconds + date.to_s[19..-1]
end

#field_to_hash(field) ⇒ Object



35
36
37
38
39
40
# File 'lib/likeno/helpers/hash_converters.rb', line 35

def field_to_hash(field)
  hash = {}
  field_value = send(field)
  hash[field] = convert_to_hash(field_value) unless field_value.nil?
  hash
end