Use a File for IO with irb, see InputMethod

Methods
E
G
N
Attributes
[R] file_name

The file name of this input method, usually given during initialization.

Class Public methods
new(file)

Creates a new input method object

# File lib/irb/input-method.rb, line 99
def initialize(file)
  super
  @io = IRB::MagicFile.open(file)
end
Instance Public methods
encoding()

The external encoding for standard input.

# File lib/irb/input-method.rb, line 125
def encoding
  @io.external_encoding
end
eof?()

Whether the end of this input method has been reached, returns true if there is no more data to read.

See IO#eof? for more information.

# File lib/irb/input-method.rb, line 110
def eof?
  @io.eof?
end
gets()

Reads the next line from this input method.

See IO#gets for more information.

# File lib/irb/input-method.rb, line 117
    def gets
      print @prompt
      l = @io.gets
#      print @prompt, l
      l
    end