Class: ZlibSerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/scbi_mapreduce/zlib_serializer.rb

Overview

A serializer class that provides compression

To use this instead of the default Marshal serializer, redefine the serializer method in your worker and worker_manager as this:

def serializer

ZlibSerializer

end

Class Method Summary collapse

Class Method Details

.dump(data) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/scbi_mapreduce/zlib_serializer.rb', line 16

def self.dump(data)
  input=Marshal.dump(data)
  zipper = Zlib::Deflate.new(Zlib::BEST_COMPRESSION,15,9)
  res= zipper.deflate(input, Zlib::FINISH)
  zipper.close
  
  return res
end

.load(input) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/scbi_mapreduce/zlib_serializer.rb', line 25

def self.load(input)
  unzipper = Zlib::Inflate.new(15)
  res= unzipper.inflate(input)
  unzipper.close

  return Marshal.load(res)
end