xarxaprod-wp-theme/vendor/wp-cli/php-cli-tools/lib/cli/notify/Spinner.php

46 lines
1.3 KiB
PHP
Raw Permalink Normal View History

2024-01-09 16:13:20 +01:00
<?php
/**
* PHP Command Line Tools
*
* This source file is subject to the MIT license that is bundled
* with this package in the file LICENSE.
*
* @author James Logsdon <dwarf@girsbrain.org>
* @copyright 2010 James Logsdom (http://girsbrain.org)
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
*/
namespace cli\notify;
use cli\Notify;
use cli\Streams;
/**
* The `Spinner` Notifier displays an ASCII spinner.
*/
class Spinner extends Notify {
protected $_chars = '-\|/';
protected $_format = '{:msg} {:char} ({:elapsed}, {:speed}/s)';
protected $_iteration = 0;
/**
* Prints the current spinner position to `STDOUT` with the time elapsed
* and tick speed.
*
* @param boolean $finish `true` if this was called from
* `cli\Notify::finish()`, `false` otherwise.
* @see cli\out_padded()
* @see cli\Notify::formatTime()
* @see cli\Notify::speed()
*/
public function display($finish = false) {
$msg = $this->_message;
$idx = $this->_iteration++ % strlen($this->_chars);
$char = $this->_chars[$idx];
$speed = number_format(round($this->speed()));
$elapsed = $this->formatTime($this->elapsed());
Streams::out_padded($this->_format, compact('msg', 'char', 'elapsed', 'speed'));
}
}