Module: PigeonHole::JSONTime

Defined in:
lib/pigeon_hole/json_time.rb

Constant Summary collapse

TYPE_VALUE =
'time'.freeze

Class Method Summary collapse

Class Method Details

.deserialize(hash) ⇒ Object



12
13
14
15
16
# File 'lib/pigeon_hole/json_time.rb', line 12

def self.deserialize(hash)
  ms_since_epoc = hash['ms'].to_i
  seconds, fragment = ms_since_epoc.divmod(1000)
  Time.at(seconds, fragment * 1000).utc
end

.serialize(time) ⇒ Object



5
6
7
8
9
10
# File 'lib/pigeon_hole/json_time.rb', line 5

def self.serialize(time)
  {
    TypedJSON::TYPE_KEY => TYPE_VALUE,
    'ms' => (time.tv_sec * 1000) + (time.usec / 1000),
  }
end