20 lines
316 B
Ruby
Raw Normal View History

2016-08-18 22:11:42 +03:00
class IO
def readline_nonblock(sep = $INPUT_RECORD_SEPARATOR)
line = +""
buffer = +""
loop do
break if buffer == sep
2018-09-17 02:45:00 +02:00
read_nonblock(1, buffer)
line.concat(buffer)
end
line.freeze
2016-08-18 22:11:42 +03:00
rescue IO::WaitReadable, EOFError => e
raise e if line.empty?
2018-09-17 02:45:00 +02:00
line.freeze
2016-08-18 22:11:42 +03:00
end
end