1
0
Fork 0
mirror of https://github.com/pry/pry.git synced 2022-11-09 12:35:05 -05:00

Trap SIGINT on jruby by default

This commit is contained in:
Conrad Irwin 2011-11-22 09:06:27 -08:00
parent ad62ecaf8b
commit 76336c5780
2 changed files with 14 additions and 0 deletions

View file

@ -98,6 +98,12 @@ class Pry
# @return [Boolean] # @return [Boolean]
attr_accessor :disable_auto_reload attr_accessor :disable_auto_reload
# Determins whether Pry should trap SIGINT and cause it to raise an
# Interrupt exception. This is only useful on jruby, MRI does this
# for us.
# @return [Boolean]
attr_accessor :should_trap_interrupts
# Config option for history. # Config option for history.
# sub-options include hist.file, hist.load, and hist.save # sub-options include hist.file, hist.load, and hist.save
# hist.file is the file to save/load history too, e.g # hist.file is the file to save/load history too, e.g

View file

@ -73,6 +73,12 @@ class Pry
end end
end end
# Trap interrupts on jruby, and make them behave like MRI so we can
# catch them.
def self.load_traps
trap('INT'){ raise Interrupt }
end
# Do basic setup for initial session. # Do basic setup for initial session.
# Including: loading .pryrc, loading plugins, loading requires, and # Including: loading .pryrc, loading plugins, loading requires, and
# loading history. # loading history.
@ -87,6 +93,7 @@ class Pry
load_plugins if Pry.config.plugins.enabled load_plugins if Pry.config.plugins.enabled
load_requires if Pry.config.should_load_requires load_requires if Pry.config.should_load_requires
load_history if Pry.config.history.should_load load_history if Pry.config.history.should_load
load_traps if Pry.config.should_trap_interrupts
@initial_session = false @initial_session = false
end end
@ -202,6 +209,7 @@ class Pry
config.system = DEFAULT_SYSTEM config.system = DEFAULT_SYSTEM
config.editor = default_editor_for_platform config.editor = default_editor_for_platform
config.should_load_rc = true config.should_load_rc = true
config.should_trap_interrupts = defined?(RUBY_ENGINE) && RUBY_ENGINE =~ /jruby/
config.disable_auto_reload = false config.disable_auto_reload = false
config.command_prefix = "" config.command_prefix = ""
config.auto_indent = true config.auto_indent = true