lib/byebug/interfaces/remote_interface.rb
# frozen_string_literal: true
require_relative "../history"
module Byebug
#
# Interface class for remote use of byebug.
#
class RemoteInterface < Interface
def initialize(socket)
super()
@input = socket
@output = socket
@error = socket
end
def read_command(prompt)
super("PROMPT #{prompt}")
rescue Errno::EPIPE, Errno::ECONNABORTED
"continue"
end
def confirm(prompt)
super("CONFIRM #{prompt}")
rescue Errno::EPIPE, Errno::ECONNABORTED
false
end
def print(message)
super(message)
rescue Errno::EPIPE, Errno::ECONNABORTED
nil
end
def puts(message)
super(message)
rescue Errno::EPIPE, Errno::ECONNABORTED
nil
end
def close
output.close
end
def readline(prompt)
puts(prompt)
(input.gets || "continue").chomp
end
end
end