lib/progress.rb in progress-0.1.1.1 vs lib/progress.rb in progress-0.1.1.2

- old
+ new

@@ -129,27 +129,28 @@ @highlight.nil? ? io_tty? : @highlight end def print_message messages = [] - messages_hl = [] inner = 0 levels.reverse.each do |l| current = l.to_f(inner) value = current == 0 ? '......' : '%5.1f%%' % (current * 100.0) - messages << "#{l.title}: #{value}" - messages_hl << "#{l.title}: #{value == '100.0' ? value : "\e[1m#{value}\e[0m"}" if highlight? + messages << "#{l.title}: #{!highlight? || value == '100.0%' ? value : "\e[1m#{value}\e[0m"}" inner = current end message = messages.reverse * ' > ' unless lines? previous_length = @previous_length || 0 - @previous_length = message.length - message = message.ljust(previous_length, ' ') + "\r" + message_cl = if highlight? + message.gsub(/\033\[(0|1)m/, '') + else + message + end + @previous_length = message_cl.length + message = "#{message}#{' ' * [previous_length - message_cl.length, 0].max}]\r" end - - message = messages_hl.reverse * ' > ' if highlight? lines? ? io.puts(message) : io.print(message) end end end