Mercurial > hg > isophonics-drupal-site
annotate vendor/consolidation/output-formatters/src/Formatters/TsvFormatter.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 4c8ae668cc8c |
children |
rev | line source |
---|---|
Chris@0 | 1 <?php |
Chris@0 | 2 namespace Consolidation\OutputFormatters\Formatters; |
Chris@0 | 3 |
Chris@0 | 4 use Consolidation\OutputFormatters\Validate\ValidDataTypesInterface; |
Chris@0 | 5 use Consolidation\OutputFormatters\Options\FormatterOptions; |
Chris@0 | 6 use Consolidation\OutputFormatters\Transformations\TableTransformation; |
Chris@0 | 7 use Consolidation\OutputFormatters\Exception\IncompatibleDataException; |
Chris@0 | 8 use Symfony\Component\Console\Output\OutputInterface; |
Chris@0 | 9 |
Chris@0 | 10 /** |
Chris@0 | 11 * Tab-separated value formatters |
Chris@0 | 12 * |
Chris@0 | 13 * Display the provided structured data in a tab-separated list. Output |
Chris@0 | 14 * escaping is much lighter, since there is no allowance for altering |
Chris@0 | 15 * the delimiter. |
Chris@0 | 16 */ |
Chris@0 | 17 class TsvFormatter extends CsvFormatter |
Chris@0 | 18 { |
Chris@0 | 19 protected function getDefaultFormatterOptions() |
Chris@0 | 20 { |
Chris@0 | 21 return [ |
Chris@0 | 22 FormatterOptions::INCLUDE_FIELD_LABELS => false, |
Chris@0 | 23 ]; |
Chris@0 | 24 } |
Chris@0 | 25 |
Chris@0 | 26 protected function writeOneLine(OutputInterface $output, $data, $options) |
Chris@0 | 27 { |
Chris@0 | 28 $output->writeln($this->tsvEscape($data)); |
Chris@0 | 29 } |
Chris@0 | 30 |
Chris@0 | 31 protected function tsvEscape($data) |
Chris@0 | 32 { |
Chris@0 | 33 return implode("\t", array_map( |
Chris@0 | 34 function ($item) { |
Chris@0 | 35 return str_replace(["\t", "\n"], ['\t', '\n'], $item); |
Chris@0 | 36 }, |
Chris@0 | 37 $data |
Chris@0 | 38 )); |
Chris@0 | 39 } |
Chris@0 | 40 } |