Sha256: 8c2ba93a2ef248e86788c2bd9a40237e67b3883951ecfe375ac995fdc39c3799

Contents?: true

Size: 403 Bytes

Versions: 3

Compression:

Stored size: 403 Bytes

Contents

require 'msgpack'
require 'speed_gun'

class SpeedGun::Store
  def serialize(obj)
    ["#{obj.class.name}/#{obj.id}", MessagePack.pack(obj.to_hash)]
  end

  def deserialize(key, msg)
    return nil if msg.nil? || msg.empty?
    hash = MessagePack.unpack(msg)
    klass, id = *key.split('/', 2)
    obj = Object.const_get(klass).from_hash(hash)
    obj.instance_variable_set(:@id, id)
    obj
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
speed_gun-2.0.1 lib/speed_gun/store.rb
speed_gun-2.0.0 lib/speed_gun/store.rb
speed_gun-2.0.0.pre.alpha.1 lib/speed_gun/store.rb