diff options
Diffstat (limited to 'lib/pry')
-rw-r--r-- | lib/pry/exceptions.rb | 6 | ||||
-rw-r--r-- | lib/pry/pry_class.rb | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/lib/pry/exceptions.rb b/lib/pry/exceptions.rb index eac1c009..ee31e6c4 100644 --- a/lib/pry/exceptions.rb +++ b/lib/pry/exceptions.rb @@ -27,7 +27,11 @@ class Pry # Catches SecurityErrors if $SAFE is set module TooSafeException def self.===(exception) - $SAFE > 0 && exception.is_a?(SecurityError) + if Pry::HAS_SAFE_LEVEL + $SAFE > 0 && exception.is_a?(SecurityError) + else + exception.is_a?(SecurityError) + end end end diff --git a/lib/pry/pry_class.rb b/lib/pry/pry_class.rb index 414c6a5a..80dda807 100644 --- a/lib/pry/pry_class.rb +++ b/lib/pry/pry_class.rb @@ -6,6 +6,13 @@ require 'pathname' class Pry LOCAL_RC_FILE = "./.pryrc".freeze + # @return [Boolean] true if this Ruby supports safe levels and tainting, + # to guard against using deprecated or unsupported features + HAS_SAFE_LEVEL = ( + RUBY_ENGINE == 'ruby' && + Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7') + ) + class << self extend Pry::Forwardable attr_accessor :custom_completions |