class Sass::Script::UnaryOperation
Currently only ‘-`, `/`, and `not` are unary operators.
such as `-$b` or `not true`.
A SassScript parse node representing a unary operation,
def _perform(environment)
-
(Sass::SyntaxError)
- if the operation is undefined for the operand
Returns:
-
(Literal)
- The SassScript object that is the value of the operation
Parameters:
-
environment
(Sass::Environment
) -- The environment in which to evaluate the SassScript
def _perform(environment) operator = "unary_#{@operator}" literal = @operand.perform(environment) literal.send(operator) rescue NoMethodError => e raise e unless e.name.to_s == operator.to_s raise Sass::SyntaxError.new("Undefined unary operation: \"#{@operator} #{literal}\".") end
def children
- See: Node#children -
Returns:
-
(Array
-)
def children [@operand] end
def initialize(operand, operator)
-
operator
(Symbol
) -- The operator to perform -
operand
(Script::Node
) -- The parse-tree node
def initialize(operand, operator) @operand = operand @operator = operator super() end
def inspect
-
(String)
- A human-readable s-expression representation of the operation
def inspect "(#{@operator.inspect} #{@operand.inspect})" end
def to_sass(opts = {})
- See: Node#to_sass -
def to_sass(opts = {}) operand = @operand.to_sass(opts) if @operand.is_a?(Operation) || (@operator == :minus && (operand =~ Sass::SCSS::RX::IDENT) == 0) operand = "(#{@operand.to_sass(opts)})" end op = Lexer::OPERATORS_REVERSE[@operator] op + (op =~ /[a-z]/ ? " " : "") + operand end