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