diff --git a/.travis.yml b/.travis.yml index 21a4c64f..b903c3b3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ rvm: - 2.4 - 2.5 - 2.6 + - 2.7 - ruby-head matrix: fast_finish: true diff --git a/lib/zip/crypto/decrypted_io.rb b/lib/zip/crypto/decrypted_io.rb index ec9cab8b..1dab17c0 100644 --- a/lib/zip/crypto/decrypted_io.rb +++ b/lib/zip/crypto/decrypted_io.rb @@ -7,7 +7,7 @@ def initialize(io, decrypter) @decrypter = decrypter end - def read(length = nil, outbuf = '') + def read(length = nil, outbuf = +'') return ((length.nil? || length.zero?) ? "" : nil) if eof while length.nil? || (buffer.bytesize < length) @@ -25,7 +25,7 @@ def eof end def buffer - @buffer ||= ''.dup + @buffer ||= +'' end def input_finished? diff --git a/lib/zip/entry.rb b/lib/zip/entry.rb index f1963d8d..a24fb791 100644 --- a/lib/zip/entry.rb +++ b/lib/zip/entry.rb @@ -615,7 +615,7 @@ def create_file(dest_path, _continue_on_exists_proc = proc { Zip.continue_on_exi get_input_stream do |is| bytes_written = 0 warned = false - buf = ''.dup + buf = +'' while (buf = is.sysread(::Zip::Decompressor::CHUNK_SIZE, buf)) os << buf bytes_written += buf.bytesize diff --git a/lib/zip/extra_field.rb b/lib/zip/extra_field.rb index 72c36764..0dcf0d5e 100644 --- a/lib/zip/extra_field.rb +++ b/lib/zip/extra_field.rb @@ -26,7 +26,7 @@ def extra_field_type_unknown(binstr, len, i) end def create_unknown_item - s = ''.dup + s = +'' class << s alias_method :to_c_dir_bin, :to_s alias_method :to_local_bin, :to_s diff --git a/lib/zip/inflater.rb b/lib/zip/inflater.rb index bb735d11..c18f245c 100644 --- a/lib/zip/inflater.rb +++ b/lib/zip/inflater.rb @@ -3,7 +3,7 @@ class Inflater < Decompressor #:nodoc:all def initialize(*args) super - @buffer = ''.dup + @buffer = +'' @zlib_inflater = ::Zlib::Inflate.new(-Zlib::MAX_WBITS) end