Sha256: 95fbbc37e75a24db15da76851d9a39dfaf88cf9a1f707db453c379684dac6c7d

Contents?: true

Size: 1.21 KB

Versions: 175

Compression:

Stored size: 1.21 KB

Contents

module Sass::Script
  # A SassScript parse node representing a unary operation,
  # such as `-!b` or `not true`.
  #
  # Currently only `-`, `/`, and `not` are unary operators.
  class UnaryOperation < Node
    # @param operand [Script::Node] The parse-tree node
    #   for the object of the operator
    # @param operator [Symbol] The operator to perform
    def initialize(operand, operator)
      @operand = operand
      @operator = operator
    end

    # @return [String] A human-readable s-expression representation of the operation
    def inspect
      "(#{@operator.inspect} #{@operand.inspect})"
    end

    # Evaluates the operation.
    #
    # @param environment [Sass::Environment] The environment in which to evaluate the SassScript
    # @return [Literal] The SassScript object that is the value of the operation
    # @raise [Sass::SyntaxError] if the operation is undefined for the operand
    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
  end
end

Version data entries

175 entries across 174 versions & 7 rubygems

Version Path
haml-edge-2.3.51 lib/sass/script/unary_operation.rb
haml-edge-2.3.50 lib/sass/script/unary_operation.rb
haml-edge-2.3.49 lib/sass/script/unary_operation.rb
haml-edge-2.3.48 lib/sass/script/unary_operation.rb
haml-2.2.8 lib/sass/script/unary_operation.rb
haml-edge-2.3.47 lib/sass/script/unary_operation.rb
haml-edge-2.3.46 lib/sass/script/unary_operation.rb
haml-edge-2.3.45 lib/sass/script/unary_operation.rb
haml-edge-2.3.44 lib/sass/script/unary_operation.rb
drnic-haml-2.3.0 lib/sass/script/unary_operation.rb
haml-edge-2.3.43 lib/sass/script/unary_operation.rb
haml-edge-2.3.42 lib/sass/script/unary_operation.rb
haml-2.2.6 lib/sass/script/unary_operation.rb
haml-edge-2.3.41 lib/sass/script/unary_operation.rb
haml-edge-2.3.40 lib/sass/script/unary_operation.rb
haml-edge-2.3.39 lib/sass/script/unary_operation.rb
haml-edge-2.3.38 lib/sass/script/unary_operation.rb
haml-edge-2.3.37 lib/sass/script/unary_operation.rb
haml-edge-2.3.36 lib/sass/script/unary_operation.rb
haml-edge-2.3.35 lib/sass/script/unary_operation.rb