From 898f30f8bd064c9803625c98a3e46bd3434ff1bb Mon Sep 17 00:00:00 2001 From: Stan Lo Date: Sun, 25 Feb 2024 23:20:56 +0800 Subject: [PATCH] [ruby/irb] Refactor IRB::Context#prompting (https://github.com/ruby/irb/pull/889) https://github.com/ruby/irb/commit/7b323ee514 --- lib/irb/context.rb | 4 +--- lib/irb/input-method.rb | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/irb/context.rb b/lib/irb/context.rb index d2d0bed522c6db..9647327037cb19 100644 --- a/lib/irb/context.rb +++ b/lib/irb/context.rb @@ -479,9 +479,7 @@ def verbose? # StdioInputMethod or RelineInputMethod or ReadlineInputMethod, see #io # for more information. def prompting? - verbose? || (STDIN.tty? && @io.kind_of?(StdioInputMethod) || - @io.kind_of?(RelineInputMethod) || - (defined?(ReadlineInputMethod) && @io.kind_of?(ReadlineInputMethod))) + verbose? || @io.prompting? end # The return value of the last statement evaluated. diff --git a/lib/irb/input-method.rb b/lib/irb/input-method.rb index a483ec671b044f..c1998309283fc3 100644 --- a/lib/irb/input-method.rb +++ b/lib/irb/input-method.rb @@ -44,6 +44,10 @@ def support_history_saving? false end + def prompting? + false + end + # For debug message def inspect 'Abstract InputMethod' @@ -91,6 +95,10 @@ def readable_after_eof? true end + def prompting? + STDIN.tty? + end + # Returns the current line number for #io. # # #line counts the number of times #gets is called. @@ -220,6 +228,10 @@ def eof? @eof end + def prompting? + true + end + # For debug message def inspect readline_impl = (defined?(Reline) && Readline == Reline) ? 'Reline' : 'ext/readline' @@ -467,6 +479,10 @@ def eof? @eof end + def prompting? + true + end + # For debug message def inspect config = Reline::Config.new