lib/io_streams/bzip2/writer.rb in iostreams-1.3.3 vs lib/io_streams/bzip2/writer.rb in iostreams-1.4.0

- old
+ new

@@ -1,13 +1,15 @@ module IOStreams module Bzip2 class Writer < IOStreams::Writer # Write to a stream, compressing with Bzip2 - def self.stream(input_stream, original_file_name: nil, **_args) - Utils.load_soft_dependency("rbzip2", "Bzip2") unless defined?(RBzip2) + def self.stream(input_stream, original_file_name: nil, **args) + unless defined?(::Bzip2::FFI) + Utils.load_soft_dependency("bzip2-ffi", "Bzip2", "bzip2/ffi") + end begin - io = RBzip2.default_adapter::Compressor.new(input_stream) + io = ::Bzip2::FFI::Writer.new(input_stream, args) yield io ensure io&.close end end