Method: IO::LikeHelpers::CharacterIO#write
- Defined in:
- lib/io/like_helpers/character_io.rb
#write(buffer) ⇒ Integer
Writes characters to the stream, performing character and newline conversion first if necessary.
This method always blocks until all data is written.
317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 |
# File 'lib/io/like_helpers/character_io.rb', line 317 def write(buffer) assert_writable target_encoding = external_encoding if target_encoding.nil? || target_encoding == Encoding::BINARY target_encoding = buffer.encoding end if target_encoding != buffer.encoding || ! encoding_opts_w.empty? buffer = buffer.encode(target_encoding, **encoding_opts_w) end writer = sync? ? blocking_io : buffered_io buffer = buffer.b bytes_written = 0 while bytes_written < buffer.bytesize do bytes_written += writer.write(buffer[bytes_written..-1]) end bytes_written end |