From e628f96dcf811e6adb2b1b5f56507d4b3293bed0 Mon Sep 17 00:00:00 2001 From: h7kayama <0hideki0@gmail.com> Date: Fri, 26 Nov 2021 16:38:14 +0900 Subject: [PATCH] #2141 fix system exit status --- lib/pry/pager.rb | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/lib/pry/pager.rb b/lib/pry/pager.rb index e6e408984..548f589a9 100644 --- a/lib/pry/pager.rb +++ b/lib/pry/pager.rb @@ -127,6 +127,22 @@ def write(str) # to it. If `#close` is called before then, it just prints out the # buffered content. class SystemPager < NullPager + def initialize(*) + super + @system_pager = + begin + pager_executable = default_pager.split(' ').first + if Helpers::Platform.windows? || Helpers::Platform.windows_ansi? + `where /Q #{pager_executable}` + else + `which #{pager_executable}` + end + $CHILD_STATUS.success? + rescue StandardError + false + end + end + def self.default_pager pager = Pry::Env['PAGER'] || '' @@ -137,25 +153,8 @@ def self.default_pager pager end - @system_pager = nil - def self.available? - if @system_pager.nil? - @system_pager = - begin - pager_executable = default_pager.split(' ').first - if Helpers::Platform.windows? || Helpers::Platform.windows_ansi? - `where /Q #{pager_executable}` - else - `which #{pager_executable}` - end - $CHILD_STATUS.success? - rescue StandardError - false - end - else - @system_pager - end + @system_pager end def initialize(*)