+ file = args.shift
+ mode = args.shift
+ options = args.shift || {}
+
+ if mode == 'w'
+ case options[:compress]
+ when :gzip
+ ios = Zlib::GzipWriter.new File.open(file, mode, options)
+ when :bzip, :bzip2
+ # ios = Bzip2::Writer.new File.open(file, mode, options) # TODO being pissed with buggy bzip2 gem.
+ ios, = Open3.pipeline_w("bzip2 -c", out: file)
+ else
+ ios = File.open(file, mode, options)
+ end