AVRO-3180: Interop tests fail on force_encoding (#1296)
diff --git a/lang/ruby/lib/avro/ipc.rb b/lang/ruby/lib/avro/ipc.rb
index 67eb10d..72520a5 100644
--- a/lang/ruby/lib/avro/ipc.rb
+++ b/lang/ruby/lib/avro/ipc.rb
@@ -104,7 +104,7 @@
def request(message_name, request_datum)
# Writes a request message and reads a response or error message.
# build handshake and call request
- buffer_writer = StringIO.new(''.force_encoding('BINARY'))
+ buffer_writer = StringIO.new(String.new('', encoding: 'BINARY'))
buffer_encoder = Avro::IO::BinaryEncoder.new(buffer_writer)
write_handshake_request(buffer_encoder)
write_call_request(message_name, request_datum, buffer_encoder)
@@ -248,7 +248,7 @@
# a response or error. Compare to 'handle()' in Thrift.
def respond(call_request, transport=nil)
buffer_decoder = Avro::IO::BinaryDecoder.new(StringIO.new(call_request))
- buffer_writer = StringIO.new(''.force_encoding('BINARY'))
+ buffer_writer = StringIO.new(String.new('', encoding: 'BINARY'))
buffer_encoder = Avro::IO::BinaryEncoder.new(buffer_writer)
error = nil
response_metadata = {}
@@ -510,7 +510,7 @@
def read_framed_message
message = []
loop do
- buffer = ''.force_encoding('BINARY')
+ buffer = String.new('', encoding: 'BINARY')
buffer_size = read_buffer_size
return message.join if buffer_size == 0
@@ -546,7 +546,7 @@
end
def transceive(message)
- writer = FramedWriter.new(StringIO.new(''.force_encoding('BINARY')))
+ writer = FramedWriter.new(StringIO.new(String.new('', encoding: 'BINARY')))
writer.write_framed_message(message)
resp = @conn.post('/', writer.to_s, {'Content-Type' => 'avro/binary'})
FramedReader.new(StringIO.new(resp.body)).read_framed_message