Class: Ializer::FloatDeSer

Inherits:
Object
  • Object
show all
Defined in:
lib/ializer/float_de_ser.rb

Constant Summary collapse

NAN_STRING =
Float::NAN.to_s
INFINITY_STRING =
Float::INFINITY.to_s
NEGATIVE_INFINITY_STRING =
(-Float::INFINITY).to_s

Class Method Summary collapse

Class Method Details

.parse(value) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/ializer/float_de_ser.rb', line 19

def self.parse(value)
  return Float::NAN if value == NAN_STRING

  return -Float::INFINITY if value == NEGATIVE_INFINITY_STRING

  return Float::INFINITY if value == INFINITY_STRING

  return nil if value.nil?

  value.to_f
end

.serialize(value, _context = nil) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/ializer/float_de_ser.rb', line 9

def self.serialize(value, _context = nil)
  value = value.to_f unless value.is_a? Float

  return NAN_STRING if value.nan?

  return value.to_s if value.infinite?

  value
end