Class: Omnizip::Algorithms::LZMA::XzEncoderAdapter
- Inherits:
-
Object
- Object
- Omnizip::Algorithms::LZMA::XzEncoderAdapter
- Defined in:
- lib/omnizip/algorithms/lzma/encoder.rb
Overview
Adapter for XzEncoder to match SdkEncoder interface
XzEncoder has a different interface (encode(input, output) vs encode_stream(input)). This adapter wraps XzEncoder to provide the same interface as SdkEncoder.
Instance Method Summary collapse
-
#bytes_for_decode ⇒ Integer
Get bytes for decode (for LZMA2 compatibility).
-
#encode_stream(input) ⇒ Array<String, Integer>
Encode stream (matches SdkEncoder interface).
-
#initialize(output, options = {}) ⇒ XzEncoderAdapter
constructor
Initialize adapter.
Constructor Details
#initialize(output, options = {}) ⇒ XzEncoderAdapter
Initialize adapter
113 114 115 116 117 118 |
# File 'lib/omnizip/algorithms/lzma/encoder.rb', line 113 def initialize(output, = {}) @output = output @options = @xz_encoder = XzEncoder.new() @bytes_for_decode = nil end |
Instance Method Details
#bytes_for_decode ⇒ Integer
Get bytes for decode (for LZMA2 compatibility)
133 134 135 |
# File 'lib/omnizip/algorithms/lzma/encoder.rb', line 133 def bytes_for_decode @bytes_for_decode || @output.string.bytesize end |
#encode_stream(input) ⇒ Array<String, Integer>
Encode stream (matches SdkEncoder interface)
124 125 126 127 128 |
# File 'lib/omnizip/algorithms/lzma/encoder.rb', line 124 def encode_stream(input) input_data = input.is_a?(String) ? input : input.read @bytes_for_decode = @xz_encoder.encode(input_data, @output) [@output.string, @bytes_for_decode] end |