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