2 namespace Consolidation\OutputFormatters\Transformations;
4 use Consolidation\OutputFormatters\Options\FormatterOptions;
6 class UnstructuredDataTransformation extends \ArrayObject implements StringTransformationInterface
8 protected $originalData;
10 public function __construct($data, $fields)
12 $this->originalData = $data;
13 $rows = static::transformRow($data, $fields);
14 parent::__construct($rows);
17 public function simplifyToString(FormatterOptions $options)
19 return static::simplifyRow($this->getArrayCopy());
22 public static function transformRow($row, $fields)
27 $fieldAccessor = new UnstructuredDataFieldAccessor($row);
28 return $fieldAccessor->get($fields);
31 public static function simplifyRow($row)
33 if (is_string($row)) {
36 if (static::isSimpleArray($row)) {
37 return implode("\n", $row);
39 // No good way to simplify - just dump a json fragment
40 return json_encode($row);
43 protected static function isSimpleArray($row)
45 foreach ($row as $item) {
46 if (!is_string($item)) {