From d4942546af0e2c0a4b53eaf5d2aeec36187fa5ba Mon Sep 17 00:00:00 2001 From: tomoya ishida Date: Thu, 28 Sep 2023 22:53:25 +0900 Subject: [PATCH] [ruby/reline] Properly restore Reline::IOGate in test teardown (https://github.com/ruby/reline/pull/593) * Properly restore Reline::IOGate in test teardown * GeneralIO.reset should reset class variable existence https://github.com/ruby/reline/commit/c16d33dae5 --- lib/reline/general_io.rb | 6 +++++- test/reline/helper.rb | 26 ++++++++++++++------------ test/reline/test_reline_key.rb | 1 + 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/lib/reline/general_io.rb b/lib/reline/general_io.rb index dd2e87eaf0a441..eaae63f925daf4 100644 --- a/lib/reline/general_io.rb +++ b/lib/reline/general_io.rb @@ -3,7 +3,11 @@ class Reline::GeneralIO def self.reset(encoding: nil) @@pasting = false - @@encoding = encoding + if encoding + @@encoding = encoding + elsif defined?(@@encoding) + remove_class_variable(:@@encoding) + end end def self.encoding diff --git a/test/reline/helper.rb b/test/reline/helper.rb index bb2389318739aa..fb2262e7f5047a 100644 --- a/test/reline/helper.rb +++ b/test/reline/helper.rb @@ -21,21 +21,23 @@ module Reline class <