basics/readline_and_readlines.rb
tests/_examples/basics/readline_and_readlines.rb in the metorex repository.
puts Kernel.private_instance_methods(false).include?(:gets)
puts Kernel.private_instance_methods(false).include?(:readline)
puts Kernel.private_instance_methods(false).include?(:readlines)
puts EOFError.superclass.name
puts EOFError.ancestors.include?(StandardError)
# With no input to read, `gets` answers nil and `readlines` is empty, while
# `readline` refuses and raises.
puts gets.inspect
puts readlines.inspect
begin
readline
rescue EOFError => error
puts "#{error.class}: #{error.message}"
end
begin
readline 1
rescue EOFError => error
puts "with a limit: #{error.message}"
end
Output:
true
true
true
IOError
true
nil
[]
EOFError: end of file reached
with a limit: end of file reached