Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 8 |
CRAP | |
0.00% |
0 / 42 |
Output | |
0.00% |
0 / 1 |
|
0.00% |
0 / 8 |
182 | |
0.00% |
0 / 42 |
__construct($colors = true, $defer_flush = false) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 5 |
|||
put($message) | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 5 |
|||
write($text) | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 8 |
|||
naturalize($message) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 5 |
|||
colorize($message) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 7 |
|||
clean($message) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 5 |
|||
writeln($message) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
debug($message) | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 4 |
<?php | |
namespace Codeception; | |
class Output { | |
protected $colors = true; | |
protected $defer_flush = false; | |
function __construct($colors = true, $defer_flush = false) { | |
$this->colors = $colors; | |
$this->defer_flush = $defer_flush; | |
ob_start(); | |
} | |
public function put($message) { | |
$message = $this->colors ? $this->colorize($message) : $this->naturalize($message); | |
$message = $this->clean($message); | |
$this->write($message); | |
} | |
private function write($text) | |
{ | |
if (!$this->defer_flush) { | |
while (ob_get_level()) ob_end_flush(); | |
} | |
print $text; | |
ob_start(); | |
} | |
protected function naturalize($message) | |
{ | |
$message = str_replace(array('[[',']]','(%','%)','((','))','(!','!)'), array('','','','','','','',''), $message); | |
return $message; | |
} | |
protected function colorize($message) { | |
// magenta colors | |
$message = str_replace(array('[[',']]'), array("\033[35;1m","\033[0m"), $message); | |
$message = str_replace(array('(%','%)'), array("\033[45;37m","\033[0m"), $message); | |
// grey | |
$message = str_replace(array('((','))'), array("\033[37;1m","\033[0m"), $message); | |
$message = str_replace(array('(!','!)'), array("\033[41;37m","\033[0m"), $message); | |
return $message; | |
} | |
protected function clean($message) | |
{ | |
// clear json serialization | |
$message = str_replace('\/','/', $message); | |
return $message; | |
} | |
public function writeln($message) { | |
$this->put("$message\n"); | |
} | |
public function debug($message) { | |
if (is_array($message)) $message = implode("\n=> ", $message); | |
$this->colors ? $this->writeln("\033[36m=> ".$message."\033[0m") : $this->writeln("=> ".$message) ; | |
} | |
} |