diff options
Diffstat (limited to 'lib/less.php/Tree/Attribute.php')
-rw-r--r-- | lib/less.php/Tree/Attribute.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/lib/less.php/Tree/Attribute.php b/lib/less.php/Tree/Attribute.php new file mode 100644 index 0000000..32b8900 --- /dev/null +++ b/lib/less.php/Tree/Attribute.php @@ -0,0 +1,54 @@ +<?php + +/** + * Attribute + * + * @package Less + * @subpackage tree + */ +class Less_Tree_Attribute extends Less_Tree{ + + public $key; + public $op; + public $value; + public $type = 'Attribute'; + + public function __construct($key, $op, $value){ + $this->key = $key; + $this->op = $op; + $this->value = $value; + } + + public function compile($env){ + + $key_obj = is_object($this->key); + $val_obj = is_object($this->value); + + if( !$key_obj && !$val_obj ){ + return $this; + } + + return new Less_Tree_Attribute( + $key_obj ? $this->key->compile($env) : $this->key , + $this->op, + $val_obj ? $this->value->compile($env) : $this->value); + } + + /** + * @see Less_Tree::genCSS + */ + public function genCSS( $output ){ + $output->add( $this->toCSS() ); + } + + public function toCSS(){ + $value = $this->key; + + if( $this->op ){ + $value .= $this->op; + $value .= (is_object($this->value) ? $this->value->toCSS() : $this->value); + } + + return '[' . $value . ']'; + } +}
\ No newline at end of file |