File Manager
Viewing File: irb.rb
require 'byebug/command'
require 'irb'
module Byebug
#
# Enter IRB from byebug's prompt
#
class IrbCommand < Command
self.allow_in_post_mortem = true
def self.regexp
/^\s* irb \s*$/x
end
def self.description
<<-EOD
irb
#{short_description}
EOD
end
def self.short_description
'Starts an IRB session'
end
def execute
unless processor.interface.instance_of?(LocalInterface)
return errmsg(pr('base.errors.only_local'))
end
# @todo IRB tries to parse ARGV so we must clear it (see #197). Add a
# test case for it so we can remove this comment.
with_clean_argv { IRB.start }
end
private
def with_clean_argv
saved_argv = ARGV.dup
ARGV.clear
begin
yield
ensure
ARGV.concat(saved_argv)
end
end
end
end