類別 IRB::StdioInputMethod

公開類別方法

new() 按一下以切換來源

建立新的輸入方法物件

# File lib/irb/input-method.rb, line 55
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

公開實例方法

encoding() 按一下以切換來源

標準輸入的外部編碼。

# File lib/irb/input-method.rb, line 104
def encoding
  @stdin.external_encoding
end
eof?() 按一下以切換來源

此輸入方法的結尾是否已到達,如果沒有更多資料可讀取,則傳回 true

請參閱 IO#eof? 以取得更多資訊。

# File lib/irb/input-method.rb, line 75
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
gets() 按一下以切換來源

從此輸入方法讀取下一行。

請參閱 IO#gets 以取得更多資訊。

# File lib/irb/input-method.rb, line 65
def gets
  print @prompt
  line = @stdin.gets
  @line[@line_no += 1] = line
end
inspect() 按一下以切換來源

用於偵錯訊息

# File lib/irb/input-method.rb, line 109
def inspect
  'StdioInputMethod'
end
line(line_no) 按一下以切換來源

傳回 io 的目前行號。

line 計算 gets 被呼叫的次數。

請參閱 IO#lineno 以取得更多資訊。

# File lib/irb/input-method.rb, line 99
def line(line_no)
  @line[line_no]
end
readable_after_eof?() 按一下以切換來源

當沒有更多資料可讀取時,此輸入方法是否仍可讀取。

請參閱 IO#eof 以取得更多資訊。

# File lib/irb/input-method.rb, line 90
def readable_after_eof?
  true
end