Class: Byebug::IRBCommand
Overview
Implements byebug’s “irb” command.
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Command
command_exists?, commands, find, format_subcmd, format_subcmds, help, inherited, #initialize, load_commands, #match, register_setting_get, register_setting_set, register_setting_var, settings, settings_map, terminal_width
Class Method Details
.description ⇒ Object
95
96
97
98
99
100
101
|
# File 'lib/byebug/commands/repl.rb', line 95
def description
%{irb\tstarts an Interactive Ruby (IRB) session.
IRB is extended with methods "cont", "n" and "step" which run the
corresponding byebug commands. In contrast to the real byebug commands
these commands don't allow arguments.}
end
|
.names ⇒ Object
91
92
93
|
# File 'lib/byebug/commands/repl.rb', line 91
def names
%w(irb)
end
|
Instance Method Details
#execute ⇒ Object
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/byebug/commands/repl.rb', line 65
def execute
unless @state.interface.kind_of?(LocalInterface)
print "Command is available only in local mode.\n"
throw :debug_error
end
cont = IRB.start_session(get_binding)
case cont
when :cont
@state.proceed
when :step
force = Command.settings[:forcestep]
@state.context.step_into 1, force
@state.proceed
when :next
force = Command.settings[:forcestep]
@state.context.step_over 1, @state.frame_pos, force
@state.proceed
else
print @state.location
@state.previous_line = nil
end
end
|
#regexp ⇒ Object
61
62
63
|
# File 'lib/byebug/commands/repl.rb', line 61
def regexp
/^\s* irb \s*$/x
end
|