class Sass::Script::Operation
such as ‘!a + !b` or `“foo” + 1`.
A SassScript parse node representing a binary operation,
def initialize(operand1, operand2, operator)
-
operator
(Symbol
) -- The operator to perform. -
operand2
(Script::Node
) -- The parse-tree node -
operand1
(Script::Node
) -- The parse-tree node
def initialize(operand1, operand2, operator) @operand1 = operand1 @operand2 = operand2 @operator = operator end
def inspect
-
(String)
- A human-readable s-expression representation of the operation
def inspect "(#{@operator.inspect} #{@operand1.inspect} #{@operand2.inspect})" end
def perform(environment)
-
(Sass::SyntaxError)
- if the operation is undefined for the operands
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) literal1 = @operand1.perform(environment) literal2 = @operand2.perform(environment) begin literal1.send(@operator, literal2) rescue NoMethodError => e raise e unless e.name.to_s == @operator.to_s raise Sass::SyntaxError.new("Undefined operation: \"#{literal1} #{@operator} #{literal2}\".") end end