/**
  * Prints the progress bar to the screen with percent complete, elapsed time
  * and estimated total time.
  *
  * @param boolean  $finish  `true` if this was called from
  *                          `cli\Notify::finish()`, `false` otherwise.
  * @see cli\out()
  * @see cli\Notify::formatTime()
  * @see cli\Notify::elapsed()
  * @see cli\Progress::estimated();
  * @see cli\Progress::percent()
  * @see cli\Shell::columns()
  */
 public function display($finish = false)
 {
     $_percent = $this->percent();
     $percent = str_pad(floor($_percent * 100), 3);
     $msg = $this->_message;
     $msg = Streams::render($this->_formatMessage, compact('msg', 'percent'));
     $estimated = $this->formatTime($this->estimated());
     $elapsed = str_pad($this->formatTime($this->elapsed()), strlen($estimated));
     $timing = Streams::render($this->_formatTiming, compact('elapsed', 'estimated'));
     $size = Shell::columns();
     $size -= strlen($msg . $timing);
     if ($size < 0) {
         $size = 0;
     }
     $bar = str_repeat($this->_bars[0], floor($_percent * $size)) . $this->_bars[1];
     // substr is needed to trim off the bar cap at 100%
     $bar = substr(str_pad($bar, $size, ' '), 0, $size);
     Streams::out($this->_format, compact('msg', 'bar', 'timing'));
 }