class IRB::StdioInputMethod

def encoding

The external encoding for standard input.
def encoding
  @stdin.external_encoding
end

def eof?

See IO#eof? for more information.

there is no more data to read.
Whether the end of this input method has been reached, returns +true+ if
def eof?
  if @stdin.wait_readable(0.00001)
    c = @stdin.getc
    result = c.nil? ? true : false
    @stdin.ungetc(c) unless c.nil?
    result
  else # buffer is empty
    false
  end
end

def gets

See IO#gets for more information.

Reads the next line from this input method.
def gets
  print @prompt
  line = @stdin.gets
  @line[@line_no += 1] = line
end

def initialize

Creates a new input method object
def initialize
  @line_no = 0
  @line = []
  @stdin = IO.open(STDIN.to_i, :external_encoding => IRB.conf[:LC_MESSAGES].encoding, :internal_encoding => "-")
  @stdout = IO.open(STDOUT.to_i, 'w', :external_encoding => IRB.conf[:LC_MESSAGES].encoding, :internal_encoding => "-")
end

def inspect

For debug message
def inspect
  'StdioInputMethod'
end

def line(line_no)

See IO#lineno for more information.

#line counts the number of times #gets is called.

Returns the current line number for #io.
def line(line_no)
  @line[line_no]
end

def readable_after_eof?

See IO#eof for more information.

read.
Whether this input method is still readable when there is no more data to
def readable_after_eof?
  true
end