Class: IRB::StdioInputMethod
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
| Subclasses: | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
           InputMethod | |
| Instance Chain: 
          self,
           InputMethod | |
| Inherits: | IRB::InputMethod 
 | 
| Defined in: | lib/irb/input-method.rb | 
Constant Summary
InputMethod - Inherited
  
Class Method Summary
- 
    
      .new  ⇒ StdioInputMethod 
    
    constructor
    Creates a new input method object. 
Instance Attribute Summary
- 
    
      #eof?  ⇒ Boolean 
    
    readonly
    Whether the end of this input method has been reached, returns trueif there is no more data to read.
- #prompting? ⇒ Boolean readonly
- 
    
      #readable_after_eof?  ⇒ Boolean 
    
    readonly
    Whether this input method is still readable when there is no more data to read. 
InputMethod - Inherited
| #prompt | The irb prompt associated with this input method. | 
| #prompting?, | |
| #readable_after_eof? | Whether this input method is still readable when there is no more data to read. | 
| #support_history_saving? | |
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 59
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
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 82
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
    #prompting?  ⇒ Boolean  (readonly)
  
  [ GitHub ]
# File 'lib/irb/input-method.rb', line 101
def prompting? STDIN.tty? 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 97
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