Fix Formatters::valueToString when input is an array

Signed-off-by: davidarendsen <davidarendsen@hey.com>
This commit is contained in:
davidarendsen 2022-08-11 13:36:57 +00:00
commit 009b2f2d53
5 changed files with 17 additions and 15 deletions

View file

@ -14,23 +14,25 @@ class Formatters {
{
return $value ? 'true' : 'false';
}
elseif(is_array($value))
{
return self::toFluxArrayString($value);
}
return $value;
}
public static function toFluxArrayString(array $array): string
{
$array = array_map(function($column) {
return self::valueToString($column);
}, $array);
return implode(', ', $array);
}
public static function toFluxAssociativeArrayString(array $array): string
{
array_walk($array, function(&$value, $key) {
$value = $key . ': ' . self::valueToString($value);
if(is_string($key))
{
$value = $key . ': ' . self::valueToString($value);
}
else
{
$value = self::valueToString($value);
}
});
return implode(', ', $array);

View file

@ -18,7 +18,7 @@ class From extends Base {
public function __toString()
{
return 'from(' . Formatters::toFluxAssociativeArrayString($this->settings) . ') ';
return 'from(' . Formatters::toFluxArrayString($this->settings) . ') ';
}
}

View file

@ -18,7 +18,7 @@ class Range extends Base {
public function __toString()
{
return '|> range(' . Formatters::toFluxAssociativeArrayString($this->settings) . ') ';
return '|> range(' . Formatters::toFluxArrayString($this->settings) . ') ';
}
}

View file

@ -25,7 +25,7 @@ class Reduce extends Base {
public function __toString()
{
return '|> reduce(fn: (r, accumulator) => ({' . implode(', ', $this->formatSettings($this->settings)) . '}), ' .
'identity: {' . Formatters::toFluxAssociativeArrayString($this->identity) . '}) ';
'identity: {' . Formatters::toFluxArrayString($this->identity) . '}) ';
}
protected function formatSettings(array $settings)