Module: LZMA::Aux

Defined in:
lib/extlzma.rb

Overview

extlzma の内部で利用される補助モジュールです。

extlzma の利用者が直接利用することは想定していません。

Class Method Summary collapse

Class Method Details

.decode(src, decoder) ⇒ Object



514
515
516
517
518
519
520
521
522
523
524
525
526
527
# File 'lib/extlzma.rb', line 514

def self.decode(src, decoder)
  if src.kind_of?(String)
    return decode(StringIO.new(src), decoder) { |s| s.read }
  end

  s = Decoder.new(decoder, src)
  return s unless block_given?

  begin
    yield(s)
  ensure
    s.close rescue nil
  end
end

.encode(src, encoder) ⇒ Object



496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
# File 'lib/extlzma.rb', line 496

def self.encode(src, encoder)
  if src.kind_of?(String)
    s = Encoder.new(encoder, "".force_encoding(Encoding::BINARY))
    s << src
    s.close
    return s.outport
  end

  s = Encoder.new(encoder, (src || "".force_encoding(Encoding::BINARY)))
  return s unless block_given?

  begin
    yield(s)
  ensure
    s.close
  end
end