Class: IRB::StdioInputMethod
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
InputMethod
|
|
Instance Chain:
self,
InputMethod
|
|
Inherits: |
IRB::InputMethod
|
Defined in: | lib/irb/input-method.rb |
Class Method Summary
-
.new ⇒ StdioInputMethod
constructor
Creates a new input method object.
InputMethod
- Inherited
.new | Creates a new input method object. |
Instance Attribute Summary
-
#eof? ⇒ Boolean
readonly
Whether the end of this input method has been reached, returns
true
if there is no more data to read. -
#readable_after_eof? ⇒ Boolean
readonly
Whether this input method is still readable when there is no more data to read.
InputMethod
- Inherited
#file_name | The file name of this input method, usually given during initialization. |
#prompt | The irb prompt associated with this input method. |
#readable_after_eof? | Whether this input method is still readable when there is no more data to read. |
Instance Method Summary
-
#encoding
The external encoding for standard input.
-
#gets
Reads the next line from this input method.
-
#inspect
For debug message.
-
#line(line_no)
Returns the current line number for
#io
.
InputMethod
- Inherited
Constructor Details
.new ⇒ StdioInputMethod
Creates a new input method object
# File 'lib/irb/input-method.rb', line 65
def initialize super @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
Instance Attribute Details
#eof? ⇒ Boolean
(readonly)
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 86
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
#readable_after_eof? ⇒ Boolean
(readonly)
Whether this input method is still readable when there is no more data to read.
See IO#eof
for more information.
# File 'lib/irb/input-method.rb', line 101
def readable_after_eof? true end
Instance Method Details
#encoding
The external encoding for standard input.
# File 'lib/irb/input-method.rb', line 115
def encoding @stdin.external_encoding end
#gets
Reads the next line from this input method.
See IO#gets
for more information.
#inspect
For debug message
# File 'lib/irb/input-method.rb', line 120
def inspect 'StdioInputMethod' end
#line(line_no)
Returns the current line number for #io
.
#line
counts the number of times #gets is called.
See IO#lineno
for more information.
# File 'lib/irb/input-method.rb', line 110
def line(line_no) @line[line_no] end