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