Module: ZeroFormatter::Serializer::TimeWithOffsetSerializer

Extended by:
TimeWithOffsetSerializer
Included in:
TimeWithOffsetSerializer
Defined in:
lib/zero_formatter/serializer/time.rb

Constant Summary collapse

Alias =
%i(datetime_with_offset time_with_offset)

Instance Method Summary collapse

Instance Method Details

#deserialize(bytes, offset = 0) ⇒ Object



40
41
42
43
44
45
46
47
48
# File 'lib/zero_formatter/serializer/time.rb', line 40

def deserialize(bytes, offset=0)
  time = Time.at(Utils.read_s8(bytes, offset), Utils.read_s4(bytes, offset+8)/1000.0)
  time_offset = Utils.read_s2(bytes, offset+8+4)
  time -= time_offset*60
  {
    time: time,
    time_offset: time_offset
  }
end

#serialize(value) ⇒ Object



35
36
37
38
# File 'lib/zero_formatter/serializer/time.rb', line 35

def serialize(value)
  value ||= {time: Time.at(0), time_offset: 0}
  Utils.write_s8(value[:time].to_i + value[:time_offset]*60) << Utils.write_s4(value[:time].nsec) << Utils.write_s2(value[:time_offset])
end