class StoreAgent::DataEncoder::GzipEncoder

データをgzip圧縮して保存するためのエンコーダ
使用する際には StoreAgent.configure で初期化時に指定する

StoreAgent.configure do |c|
  c.storage_data_encoders = [StoreAgent::DataEncoder::GzipEncoder.new]
end

Public Instance Methods

decode(encrypted_data, **_) click to toggle source
Calls superclass method StoreAgent::DataEncoder#decode
# File lib/store_agent/data_encoder/gzip_encoder.rb, line 40
def decode(encrypted_data, **_)
  super do
    sio = StringIO.new(encrypted_data, "r")
    Zlib::GzipReader.wrap(sio) do |gz|
      gz.read
    end
  end
end
encode(data, **_) click to toggle source
Calls superclass method StoreAgent::DataEncoder#encode
# File lib/store_agent/data_encoder/gzip_encoder.rb, line 27
def encode(data, **_)
  super do
    StringIO.open("", "r+") do |sio|
      Zlib::GzipWriter.wrap(sio) do |gz|
        gz.write(data)
        gz.finish
      end
      sio.rewind
      sio.read
    end
  end
end