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.99 lib/sass/script/unary_operation.rb
haml-edge-2.3.98 lib/sass/script/unary_operation.rb
haml-2.2.15 lib/sass/script/unary_operation.rb
haml-edge-2.3.97 lib/sass/script/unary_operation.rb
haml-edge-2.3.96 lib/sass/script/unary_operation.rb
haml-edge-2.3.95 lib/sass/script/unary_operation.rb
haml-edge-2.3.94 lib/sass/script/unary_operation.rb
middleman-0.12.0.pre lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/unary_operation.rb
haml-edge-2.3.93 lib/sass/script/unary_operation.rb
haml-edge-2.3.92 lib/sass/script/unary_operation.rb
haml-edge-2.3.91 lib/sass/script/unary_operation.rb
haml-edge-2.3.90 lib/sass/script/unary_operation.rb
haml-2.2.14 lib/sass/script/unary_operation.rb
haml-edge-2.3.89 lib/sass/script/unary_operation.rb
haml-edge-2.3.87 lib/sass/script/unary_operation.rb
haml-edge-2.3.88 lib/sass/script/unary_operation.rb
middleman-0.10.17 vendor/gems/gems/haml-2.2.13/lib/sass/script/unary_operation.rb
middleman-0.10.16 vendor/gems/gems/haml-2.2.13/lib/sass/script/unary_operation.rb
middleman-0.10.15 vendor/gems/gems/haml-2.2.13/lib/sass/script/unary_operation.rb
middleman-0.10.14 vendor/gems/gems/haml-2.2.13/lib/sass/script/unary_operation.rb