private function renderEvents($events)
{
$rendered = array();
foreach ($events as $event) {
if ($event instanceof CallEvent) {
$call = $event->call();
$renderedArguments = array();
foreach ($call->arguments()->all() as $argument) {
$renderedArguments[] = $this->exporter->export($argument);
}
$call = $this->exporter->exportCallable($call->callback()) . '(' . implode(', ', $renderedArguments) . ')';
}
if ($event instanceof Call) {
$renderedArguments = array();
foreach ($event->arguments()->all() as $argument) {
$renderedArguments[] = $this->exporter->export($argument);
}
$rendered[] = 'Called ' . $this->exporter->exportCallable($event->callback()) . '(' . implode(', ', $renderedArguments) . ')';
} elseif ($event instanceof CalledEvent) {
$rendered[] = 'Called ' . $call;
} elseif ($event instanceof ReturnedEvent) {
$eventValue = $event->value();
$rendered[] = 'Returned ' . $this->exporter->export($eventValue) . ' from ' . $call;
} elseif ($event instanceof ThrewEvent) {
$eventException = $event->exception();
$rendered[] = 'Threw ' . $this->exporter->export($eventException) . ' from ' . $call;
} elseif ($event instanceof UsedEvent) {
$rendered[] = $call . ' started iterating';
} elseif ($event instanceof ProducedEvent) {
$eventKey = $event->key();
$eventValue = $event->value();
$rendered[] = 'Produced ' . $this->exporter->export($eventKey) . ' => ' . $this->exporter->export($eventValue) . ' from ' . $call;
} elseif ($event instanceof ReceivedEvent) {
$eventValue = $event->value();
$rendered[] = 'Received ' . $this->exporter->export($eventValue) . ' in ' . $call;
} elseif ($event instanceof ReceivedExceptionEvent) {
$eventException = $event->exception();
$rendered[] = 'Received exception ' . $this->exporter->export($eventException) . ' in ' . $call;
} elseif ($event instanceof ConsumedEvent) {
$rendered[] = $call . ' finished iterating';
} else {
$eventClass = get_class($event);
$rendered[] = $this->exporter->export($eventClass) . ' event';
}
}
return $rendered;
}