X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fconsolidation%2Foutput-formatters%2Fsrc%2FTransformations%2FUnstructuredDataTransformation.php;fp=vendor%2Fconsolidation%2Foutput-formatters%2Fsrc%2FTransformations%2FUnstructuredDataTransformation.php;h=c1bfd508e55ffabba9aebe14c2e8f0761bc87975;hp=0000000000000000000000000000000000000000;hb=0bf8d09d2542548982e81a441b1f16e75873a04f;hpb=74df008bdbb3a11eeea356744f39b802369bda3c diff --git a/vendor/consolidation/output-formatters/src/Transformations/UnstructuredDataTransformation.php b/vendor/consolidation/output-formatters/src/Transformations/UnstructuredDataTransformation.php new file mode 100644 index 000000000..c1bfd508e --- /dev/null +++ b/vendor/consolidation/output-formatters/src/Transformations/UnstructuredDataTransformation.php @@ -0,0 +1,52 @@ +originalData = $data; + $rows = static::transformRow($data, $fields); + parent::__construct($rows); + } + + public function simplifyToString(FormatterOptions $options) + { + return static::simplifyRow($this->getArrayCopy()); + } + + public static function transformRow($row, $fields) + { + if (empty($fields)) { + return $row; + } + $fieldAccessor = new UnstructuredDataFieldAccessor($row); + return $fieldAccessor->get($fields); + } + + public static function simplifyRow($row) + { + if (is_string($row)) { + return $row; + } + if (static::isSimpleArray($row)) { + return implode("\n", $row); + } + // No good way to simplify - just dump a json fragment + return json_encode($row); + } + + protected static function isSimpleArray($row) + { + foreach ($row as $item) { + if (!is_string($item)) { + return false; + } + } + return true; + } +}