From 5db19c389092af439d6a6c025e5674c47987d0e3 Mon Sep 17 00:00:00 2001 From: Austin Blatt Date: Tue, 1 Aug 2017 15:04:06 -0700 Subject: [PATCH] Update tty-cursor version for #save and #restore --- lib/tty/spinner.rb | 6 ++---- spec/unit/spin_spec.rb | 17 +++++++++-------- tty-spinner.gemspec | 2 +- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/tty/spinner.rb b/lib/tty/spinner.rb index 70b17cd..ec72fd8 100644 --- a/lib/tty/spinner.rb +++ b/lib/tty/spinner.rb @@ -353,12 +353,10 @@ def execute_on_line output.print "\n" @first_run = false else + output.print TTY::Cursor.save output.print TTY::Cursor.up(lines_up) yield if block_given? - output.print TTY::Cursor.down(lines_up - 1) if lines_up > 1 - - # Returns to beginning of the line - output.print TTY::Cursor.next_line + output.print TTY::Cursor.restore end end else diff --git a/spec/unit/spin_spec.rb b/spec/unit/spin_spec.rb index c8e617c..0ca7d43 100644 --- a/spec/unit/spin_spec.rb +++ b/spec/unit/spin_spec.rb @@ -54,6 +54,9 @@ spinner2 = TTY::Spinner.new(output: output, interval: 100) spinner2.add_multispinner(multi_spinner, 1) + save = Gem.win_platform? ? "\e[s" : "\e7" + restore = Gem.win_platform? ? "\e[u" : "\e8" + spinner.spin spinner2.spin output.rewind @@ -66,11 +69,10 @@ expect(output.read).to eq([ "\e[1G|\n", "\e[1G|\n", + save, "\e[2A", # up 2 lines "\e[1G/", - "\e[1B", # down 1 line - "\e[E", # next line - "\e[1G" + restore ].join) spinner2.spin @@ -78,15 +80,14 @@ expect(output.read).to eq([ "\e[1G|\n", "\e[1G|\n", + save, "\e[2A", # up 2 lines "\e[1G/", - "\e[1B", # down 1 line - "\e[E", # next line - "\e[1G", + restore, + save, "\e[1A", # up 1 line "\e[1G/", - "\e[E", # next line - "\e[1G" + restore ].join) end diff --git a/tty-spinner.gemspec b/tty-spinner.gemspec index 9069954..0406ffe 100644 --- a/tty-spinner.gemspec +++ b/tty-spinner.gemspec @@ -16,7 +16,7 @@ Gem::Specification.new do |spec| spec.files = Dir['lib/**/*.rb', 'LICENSE.txt', 'README.md'] spec.require_paths = ['lib'] - spec.add_runtime_dependency 'tty-cursor' + spec.add_runtime_dependency 'tty-cursor', '>= 0.5.0' spec.add_development_dependency 'bundler', '>= 1.5.0', '< 2.0' spec.add_development_dependency 'rake' end