Class: Byebug::ControlCommandProcessor
- Defined in:
- lib/byebug/processors/control_command_processor.rb
Overview
Processes commands in ‘control’ mode, when there’s no program running
Instance Attribute Summary collapse
-
#state ⇒ Object
readonly
Returns the value of attribute state.
Attributes inherited from Processor
Instance Method Summary collapse
- #commands ⇒ Object
-
#initialize(interface = LocalInterface.new) ⇒ ControlCommandProcessor
constructor
A new instance of ControlCommandProcessor.
- #process_commands ⇒ Object
-
#prompt(_context) ⇒ Object
Prompt shown before reading a command.
Methods inherited from Processor
load_commands, load_settings, #without_exceptions
Constructor Details
#initialize(interface = LocalInterface.new) ⇒ ControlCommandProcessor
Returns a new instance of ControlCommandProcessor.
10 11 12 |
# File 'lib/byebug/processors/control_command_processor.rb', line 10 def initialize(interface = LocalInterface.new) super(interface) end |
Instance Attribute Details
#state ⇒ Object (readonly)
Returns the value of attribute state.
8 9 10 |
# File 'lib/byebug/processors/control_command_processor.rb', line 8 def state @state end |
Instance Method Details
#commands ⇒ Object
14 15 16 |
# File 'lib/byebug/processors/control_command_processor.rb', line 14 def commands Command.commands.select(&:allow_in_control).map { |cmd| cmd.new(state) } end |
#process_commands ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/byebug/processors/control_command_processor.rb', line 18 def process_commands @state = ControlState.new(interface) while (input = @interface.read_command(prompt(nil))) cmd = commands.find { |c| c.match(input) } unless cmd errmsg('Unknown command') next end cmd.execute end @interface.close rescue IOError, SystemCallError @interface.close rescue without_exceptions do puts "INTERNAL ERROR!!! #{$ERROR_INFO}" puts $ERROR_INFO.backtrace.map { |l| "\t#{l}" }.join("\n") end end |
#prompt(_context) ⇒ Object
Prompt shown before reading a command.
44 45 46 |
# File 'lib/byebug/processors/control_command_processor.rb', line 44 def prompt(_context) '(byebug:ctrl) ' end |