Module: LZMA

Includes:
Constants, Exceptions
Defined in:
lib/extlzma2.rb,
lib/extlzma2/aux.rb,
lib/extlzma2/utils.rb,
lib/extlzma2/filter.rb,
lib/extlzma2/stream.rb,
lib/extlzma2/decoder.rb,
lib/extlzma2/encoder.rb,
lib/extlzma2/version.rb,
ext/extlzma2/extlzma2.c

Defined Under Namespace

Modules: Aux, Constants, Exceptions, Utils Classes: Decoder, Encoder, Filter, Index, Stream

Constant Summary collapse

VERSION =
'2.0.0'
LIBRARY_VERSION =
rb_ary_freeze(libver)
LZMA =
extlzma_mLZMA

Class Method Summary collapse

Class Method Details

.decode(src, *args, &block) ⇒ Object

call-seq:

decode(string_data) -> decoded data
decode(string_data, filter...) -> decoded data
decode(input_stream) -> decoder
decode(input_stream, filter...) -> decoder
decode(input_stream) { |decoder| ... }-> yield return value
decode(input_stream, filter...) { |decoder| ... }-> yield return value

圧縮されたデータを伸張します。

RETURN decoded data

xz データストリームとしての String インスタンスです。

RETURN decoder
RETURN yield return value
string_data

圧縮されたデータを与えます。圧縮されたデータの形式は xz と lzma です。これらはあらかじめ区別する必要なく与えることが出来ます。

options

LZMA::Filter::LZMA2.new に渡される可変引数です。詳細は LZMA::Filter::LZMA2.new を見てください。

EXCEPTIONS

(NO DOCUMENT)



79
80
81
# File 'lib/extlzma2.rb', line 79

def self.decode(src, *args, &block)
  Aux.decode(src, Stream.auto_decoder(*args), &block)
end

.delta(*args) ⇒ Object



145
146
147
# File 'lib/extlzma2.rb', line 145

def self.delta(*args)
  LZMA::Filter::Delta.new(*args)
end

.encode(src = nil, *args, &block) ⇒ Object

call-seq:

encode(string_data, preset = LZMA::PRESET_DEFAULT, opts = {}) -> encoded_xz_data
encode(string_data, filter...) -> encoded_xz_data
encode(output_stream = nil, preset = LZMA::PRESET_DEFAULT, opts = {}) -> stream_encoder
encode(output_stream, filter...) -> stream_encoder
encode(output_stream = nil, preset = LZMA::PRESET_DEFAULT, opts = {}) { |encoder| ... } -> yield return value
encode(output_stream, filter...) { |encoder| ... } -> yield return value

データを圧縮、または圧縮器を生成します。

圧縮されたデータ列は xz ファイルフォーマットとなるため、コマンドラインの xz などで伸張させることが可能です。

RETURN encoded_xz_data

xz データストリームとしての String インスタンスです。

RETURN stream_encoder

xz データストリームを生成する圧縮器を返します。

RETURN output_stream

引数として渡した output_stream そのものを返します。

string_data

圧縮元となるデータを String インスタンスで渡します。 liblzma はエンコーディング情報を無視し、そのままのバイト列をバイナリデータと見立て処理を行います。

preset = LZMA::PRESET_DEFAULT

圧縮プリセット値を指定します (圧縮レベルのようなものです)。詳細は LZMA::Filter::LZMA2.new を見てください。

opts

LZMA::Filter::LZMA2.new に渡される可変引数です。詳細は LZMA::Filter::LZMA2.new を見てください。

filter

LZMA::Filter で定義されているクラスのインスタンスを指定します。最大4つまで指定することが出来ます。

output_stream

圧縮データの受け皿となるオブジェクトを指定します。

.<< メソッドが呼ばれます。

YIELD RETURN

無視されます。

YIELD encoder

圧縮器が渡されます。

EXCEPTIONS

(NO DOCUMENT)



53
54
55
# File 'lib/extlzma2.rb', line 53

def self.encode(src = nil, *args, &block)
  Aux.encode(src, Stream.encoder(*args), &block)
end

.lzma1(*args) ⇒ Object



137
138
139
# File 'lib/extlzma2.rb', line 137

def self.lzma1(*args)
  LZMA::Filter::LZMA1.new(*args)
end

.lzma2(*args) ⇒ Object



141
142
143
# File 'lib/extlzma2.rb', line 141

def self.lzma2(*args)
  LZMA::Filter::LZMA2.new(*args)
end

.raw_decode(src, *args, &block) ⇒ Object

call-seq:

LZMA.raw_decode(encoded_data) -> decoded data
LZMA.raw_decode(encoded_data, filter...) -> decoded data
LZMA.raw_decode(inport) -> raw decoder
LZMA.raw_decode(inport, filter...) -> raw decoder
LZMA.raw_decode(inport) { |decoder| ... } -> yield return value
LZMA.raw_decode(inport, filter...) { |decoder| ... } -> yield return value

圧縮されたデータを伸張します。圧縮した際に用いたフィルタをそのままの順番・数で与える必要があります。

RETURN decoded data

伸張されたデータ列となる String インスタンスです。

src

圧縮された生の lzma1/lzma2 の String インスタンスを渡します。

options

LZMA::Filter のインスタンスを与えます。最大4つまで指定可能です。

省略時は lzma2 フィルタが指定されたとみなします。

EXCEPTIONS

(NO DOCUMENT)



133
134
135
# File 'lib/extlzma2.rb', line 133

def self.raw_decode(src, *args, &block)
  Aux.decode(src, Stream.raw_decoder(*args), &block)
end

.raw_encode(src, *args, &block) ⇒ Object

call-seq:

LZMA.raw_encode(src) -> encoded data
LZMA.raw_encode(src, filter...) -> encoded data
LZMA.raw_encode(outport = nil) -> encoder
LZMA.raw_encode(outport, filter...) -> encoder
LZMA.raw_encode(outport = nil) { |encoder| ... } -> yield return value
LZMA.raw_encode(outport, filter...)  { |encoder| ... } -> yield return value

データを圧縮します。圧縮されたデータ列は生の lzma1/lzma2 のデータ列であるため、伸張する際に適切なフィルタを与える必要があります。

xz ファイルフォーマットヘッダや整合値を持たないため、これらが不要な場合は有用かもしれません。

RETURN encoded data

生の lzma1/lzma2 のデータ列となる String インスタンスです。

src

圧縮元となるデータを String インスタンスで渡します。

filter

LZMA::Filter のインスタンスを与えます。最大4つまで指定可能です。

省略時は lzma2 フィルタが指定されたとみなします。

EXCEPTIONS

(NO DOCUMENT)



107
108
109
# File 'lib/extlzma2.rb', line 107

def self.raw_encode(src, *args, &block)
  Aux.encode(src, Stream.raw_encoder(*args), &block)
end