Class: StoreAgent::DataEncoder::GzipEncoder
- Inherits:
-
StoreAgent::DataEncoder
- Object
- StoreAgent::DataEncoder
- StoreAgent::DataEncoder::GzipEncoder
- Defined in:
- lib/store_agent/data_encoder/gzip_encoder.rb
Overview
データをgzip圧縮して保存するためのエンコーダ
使用する際には StoreAgent.configure で初期化時に指定する
StoreAgent.configure do |c|
c.storage_data_encoders = [StoreAgent::DataEncoder::GzipEncoder.new]
end
Instance Method Summary collapse
Instance Method Details
#decode(encrypted_data, **_) ⇒ Object
40 41 42 43 44 45 46 47 |
# 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, **_) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 |
# 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 |