class Paquito::SingleBytePrefixVersion

Public Class Methods

new(current_version, coders) click to toggle source
# File lib/paquito/single_byte_prefix_version.rb, line 5
def initialize(current_version, coders)
  @current_version = current_version
  @coders = coders.transform_values { |c| Paquito.cast(c) }
  @current_coder = coders.fetch(current_version)
end

Public Instance Methods

dump(object) click to toggle source
# File lib/paquito/single_byte_prefix_version.rb, line 11
def dump(object)
  @current_version.chr(Encoding::BINARY) << @current_coder.dump(object)
end
load(payload) click to toggle source
# File lib/paquito/single_byte_prefix_version.rb, line 15
def load(payload)
  payload_version = payload.getbyte(0)
  unless payload_version
    raise UnsupportedCodec, "Missing version byte."
  end

  coder = @coders.fetch(payload_version) do
    raise UnsupportedCodec, "Unsupported packer version #{payload_version}"
  end
  coder.load(payload.byteslice(1..-1))
end