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

Update clearer terminologies

Deprecate Pry.config.exception_whitelist,
use Pry.config.unrescued_exceptions instead.

Deprecate  Pry::DEFAULT_EXCEPTION_WHITELIST,
use Pry::DEFAULT_UNRESCUED_EXCEPTIONS instead.

What white / black means are not clear,
use clearer terminologies.
This commit is contained in:
Juanito Fatas 2018-11-11 01:34:09 +09:00
parent e138cb3d0a
commit d12ce06a7f
8 changed files with 40 additions and 32 deletions

View file

@ -430,7 +430,7 @@ Layout/SpaceInsideStringInterpolation:
# SupportedStyles: final_newline, final_blank_line # SupportedStyles: final_newline, final_blank_line
Layout/TrailingBlankLines: Layout/TrailingBlankLines:
Exclude: Exclude:
- 'spec/exception_whitelist_spec.rb' - 'spec/unrescued_exceptions_spec.rb'
# Offense count: 13 # Offense count: 13
# Cop supports --auto-correct. # Cop supports --auto-correct.

View file

@ -32,8 +32,12 @@ class Pry
exception_handler: proc { exception_handler: proc {
Pry::DEFAULT_EXCEPTION_HANDLER Pry::DEFAULT_EXCEPTION_HANDLER
}, },
unrescued_exceptions: proc {
Pry::DEFAULT_UNRESCUED_EXCEPTIONS
},
exception_whitelist: proc { exception_whitelist: proc {
Pry::DEFAULT_EXCEPTION_WHITELIST warn 'Pry.config.exception_whitelist is deprecated, please use Pry.config.unrescued_exceptions instead.'
Pry::DEFAULT_UNRESCUED_EXCEPTIONS
}, },
hooks: proc { hooks: proc {
Pry::DEFAULT_HOOKS Pry::DEFAULT_HOOKS

View file

@ -13,7 +13,7 @@ class Pry
# Don't catch signals (particularly not SIGTERM) as these are unlikely # Don't catch signals (particularly not SIGTERM) as these are unlikely
# to be intended for pry itself. We should also make sure that # to be intended for pry itself. We should also make sure that
# Kernel#exit works. # Kernel#exit works.
when *Pry.config.exception_whitelist when *Pry.config.unrescued_exceptions
false false
# All other exceptions will be caught. # All other exceptions will be caught.
else else
@ -57,9 +57,15 @@ class Pry
end end
# Don't catch these exceptions # Don't catch these exceptions
DEFAULT_EXCEPTION_WHITELIST = [SystemExit, DEFAULT_UNRESCUED_EXCEPTIONS = [SystemExit,
SignalException, SignalException,
Pry::TooSafeException] Pry::TooSafeException]
DEFAULT_EXCEPTION_WHITELIST = DEFAULT_UNRESCUED_EXCEPTIONS
if Object.respond_to?(:deprecate_constant)
deprecate_constant :DEFAULT_EXCEPTION_WHITELIST
else
warn('DEFAULT_EXCEPTION_WHITELIST is deprecated and will be removed in a future version of Pry. Please use DEFAULT_UNRESCUED_EXCEPTIONS instead.')
end
# CommandErrors are caught by the REPL loop and displayed to the user. They # CommandErrors are caught by the REPL loop and displayed to the user. They
# indicate an exceptional condition that's fatal to the current command. # indicate an exceptional condition that's fatal to the current command.

View file

@ -310,7 +310,7 @@ class Pry
# as an additional exception to be rescued explicitly. # as an additional exception to be rescued explicitly.
# #
# This workaround has a side effect: java exceptions specified # This workaround has a side effect: java exceptions specified
# in `Pry.config.exception_whitelist` are ignored. # in `Pry.config.unrescued_exceptions` are ignored.
jruby_exceptions = [] jruby_exceptions = []
if Helpers::Platform.jruby? if Helpers::Platform.jruby?
jruby_exceptions << Java::JavaLang::Exception jruby_exceptions << Java::JavaLang::Exception

View file

@ -213,7 +213,7 @@ describe Pry::InputCompleter do
completer_test(self).call("[].size.chars") completer_test(self).call("[].size.chars")
end end
it 'does not offer methods from blacklisted modules' do it 'does not offer methods from restricted modules' do
require 'irb' require 'irb'
completer_test(self, nil, false).call("[].size.parse_printf_format") completer_test(self, nil, false).call("[].size.parse_printf_format")
end end

View file

@ -1,21 +0,0 @@
require_relative 'helper'
describe "Pry.config.exception_whitelist" do
before do
@str_output = StringIO.new
end
it 'should rescue all exceptions NOT specified on whitelist' do
expect(Pry.config.exception_whitelist.include?(NameError)).to eq false
expect { Pry.start(self, input: StringIO.new("raise NameError\nexit"), output: @str_output) }.not_to raise_error
end
it 'should NOT rescue exceptions specified on whitelist' do
old_whitelist = Pry.config.exception_whitelist
Pry.config.exception_whitelist = [NameError]
expect { Pry.start(self, input: StringIO.new("raise NameError"), output: @str_output) }.to raise_error NameError
Pry.config.exception_whitelist = old_whitelist
end
end

View file

@ -366,8 +366,8 @@ describe Pry::Hooks do
o = Pry::Config.new o = Pry::Config.new
o.great_escape = Class.new(StandardError) o.great_escape = Class.new(StandardError)
old_ew = Pry.config.exception_whitelist old_ew = Pry.config.unrescued_exceptions
Pry.config.exception_whitelist << o.great_escape Pry.config.unrescued_exceptions << o.great_escape
array = [1, 2, 3, 4, 5] array = [1, 2, 3, 4, 5]
@ -387,7 +387,7 @@ describe Pry::Hooks do
expect(array).to eq nil expect(array).to eq nil
# cleanup after test # cleanup after test
Pry.config.exception_whitelist = old_ew Pry.config.unrescued_exceptions = old_ew
end end
describe "before_eval hook" do describe "before_eval hook" do

View file

@ -0,0 +1,19 @@
require_relative 'helper'
describe "Pry.config.unrescued_exceptions" do
before do
@str_output = StringIO.new
end
it 'should rescue all exceptions NOT specified on unrescued_exceptions' do
expect(Pry.config.unrescued_exceptions.include?(NameError)).to eq false
expect { Pry.start(self, input: StringIO.new("raise NameError\nexit"), output: @str_output) }.not_to raise_error
end
it 'should NOT rescue exceptions specified on unrescued_exceptions' do
old_allowlist = Pry.config.unrescued_exceptions
Pry.config.unrescued_exceptions = [NameError]
expect { Pry.start(self, input: StringIO.new("raise NameError"), output: @str_output) }.to raise_error NameError
Pry.config.unrescued_exceptions = old_allowlist
end
end