class Byebug::LocalInterface - byebug-9.0.6 Documentation

# class Byebug::LocalInterface

Interface class for standard byebug use.

### Constants

EOF_ALIAS

### Public Class Methods

new() click to toggle source
Calls superclass method Byebug::Interface.new

    # File lib/byebug/interfaces/local_interface.rb, line 9
    def initialize
      super()
      @input = $stdin
      @output = $stdout
      @error = $stderr
    end

### Public Instance Methods

readline(prompt) click to toggle source

Reads a single line of input using Readline. If Ctrl-D is pressed, it returns “continue”, meaning that program's execution will go on.

@param prompt Prompt to be displayed.

    # File lib/byebug/interfaces/local_interface.rb, line 22
    def readline(prompt)
      with_repl_like_sigint { Readline.readline(prompt) || EOF_ALIAS }
    end

with_repl_like_sigint() { || ... } click to toggle source

Yields the block handling Ctrl-C the following way: if pressed while waiting for input, the line is reset to only the prompt and we ask for input again.

@note Any external 'INT' traps are overriden during this method.

    # File lib/byebug/interfaces/local_interface.rb, line 33
    def with_repl_like_sigint
      orig_handler = trap('INT') { raise Interrupt }
      yield
    rescue Interrupt
      puts('^C')
      retry
    ensure
      trap('INT', orig_handler)
    end