class RocketJob::Sliced::CompressedSlice

Compress the records within a slice

Private Instance Methods

parse_records() click to toggle source
# File lib/rocket_job/sliced/compressed_slice.rb, line 8
def parse_records
  # Convert BSON::Binary to a string
  compressed_str   = attributes.delete("records").data
  decompressed_str = Zlib::Inflate.inflate(compressed_str)
  @records         = Hash.from_bson(BSON::ByteBuffer.new(decompressed_str))["r"]
end
serialize_records() click to toggle source
# File lib/rocket_job/sliced/compressed_slice.rb, line 15
def serialize_records
  return [] if @records.nil? || @records.empty?

  # Convert slice of records into a single string
  str = {"r" => records.to_a}.to_bson.to_s

  data = Zlib::Deflate.deflate(str)
  BSON::Binary.new(data)
end