File Editor
Directories:
.. (Back)
Base
Block
Compiler
Exception
Formatter
Logger
Node
SourceMap
Util
Files:
Block.php
Cache.php
Colors.php
CompilationResult.php
Compiler.php
Formatter.php
Node.php
OutputStyle.php
Parser.php
Type.php
Util.php
ValueConverter.php
Version.php
Warn.php
Create New File
Create
Edit File: ValueConverter.php
<?php /** * SCSSPHP * * @copyright 2012-2020 Leaf Corcoran * * @license http://opensource.org/licenses/MIT MIT * * @link http://scssphp.github.io/scssphp */ namespace ScssPhp\ScssPhp; use ScssPhp\ScssPhp\Node\Number; final class ValueConverter { // Prevent instantiating it private function __construct() { } /** * Parses a value from a Scss source string. * * The returned value is guaranteed to be supported by the * Compiler methods for registering custom variables. No other * guarantee about it is provided. It should be considered * opaque values by the caller. * * @param string $source * * @return mixed */ public static function parseValue($source) { $parser = new Parser(__CLASS__); if (!$parser->parseValue($source, $value)) { throw new \InvalidArgumentException(sprintf('Invalid value source "%s".', $source)); } return $value; } /** * Converts a PHP value to a Sass value * * The returned value is guaranteed to be supported by the * Compiler methods for registering custom variables. No other * guarantee about it is provided. It should be considered * opaque values by the caller. * * @param mixed $value * * @return mixed */ public static function fromPhp($value) { if ($value instanceof Number) { return $value; } if (is_array($value) && isset($value[0]) && \in_array($value[0], [Type::T_NULL, Type::T_COLOR, Type::T_KEYWORD, Type::T_LIST, Type::T_MAP, Type::T_STRING])) { return $value; } if ($value === null) { return Compiler::$null; } if ($value === true) { return Compiler::$true; } if ($value === false) { return Compiler::$false; } if ($value === '') { return Compiler::$emptyString; } if (\is_int($value) || \is_float($value)) { return new Number($value, ''); } if (\is_string($value)) { return [Type::T_STRING, '"', [$value]]; } throw new \InvalidArgumentException(sprintf('Cannot convert the value of type "%s" to a Sass value.', gettype($value))); } }
Save Changes
Rename File
Rename