Sha256: 8cbeae73a4500ea9c66931c48de53f0a84967c91a4abdc6ac349752a0a331c9f

Contents?: true

Size: 1.18 KB

Versions: 25

Compression:

Stored size: 1.18 KB

Contents

module Sass
  module Tree
    # A dynamic node representing a variable definition.
    #
    # @see Sass::Tree
    class VariableNode < Node
      # @param name [String] The name of the variable
      # @param expr [Script::Node] The parse tree for the initial variable value
      # @param guarded [Boolean] Whether this is a guarded variable assignment (`||=`)
      def initialize(name, expr, guarded)
        @name = name
        @expr = expr
        @guarded = guarded
        super()
      end

      protected

      def to_src(tabs, opts, fmt)
        "#{'  ' * tabs}$#{dasherize(@name, opts)}: #{@expr.to_sass(opts)}#{' !default' if @guarded}#{semi fmt}\n"
      end

      # Loads the new variable value into the environment.
      #
      # @param environment [Sass::Environment] The lexical environment containing
      #   variable and mixin values
      def _perform(environment)
        return [] if @guarded && !environment.var(@name).nil?
        val = @expr.perform(environment)
        if @expr.context == :equals && val.is_a?(Sass::Script::String)
          val = Sass::Script::String.new(val.value)
        end
        environment.set_var(@name, val)
        []
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
haml-edge-2.3.209 lib/sass/tree/variable_node.rb
haml-3.0.0.beta.3 lib/sass/tree/variable_node.rb
haml-edge-2.3.208 lib/sass/tree/variable_node.rb
haml-edge-2.3.207 lib/sass/tree/variable_node.rb
haml-edge-2.3.206 lib/sass/tree/variable_node.rb
haml-edge-2.3.205 lib/sass/tree/variable_node.rb
haml-edge-2.3.204 lib/sass/tree/variable_node.rb
haml-3.0.0.beta.2 lib/sass/tree/variable_node.rb
haml-edge-2.3.203 lib/sass/tree/variable_node.rb
haml-edge-2.3.202 lib/sass/tree/variable_node.rb
haml-edge-2.3.201 lib/sass/tree/variable_node.rb
haml-edge-2.3.200 lib/sass/tree/variable_node.rb
haml-edge-2.3.199 lib/sass/tree/variable_node.rb
haml-edge-2.3.198 lib/sass/tree/variable_node.rb
haml-edge-2.3.197 lib/sass/tree/variable_node.rb
haml-edge-2.3.196 lib/sass/tree/variable_node.rb
haml-edge-2.3.195 lib/sass/tree/variable_node.rb
haml-edge-2.3.194 lib/sass/tree/variable_node.rb
haml-edge-2.3.193 lib/sass/tree/variable_node.rb
haml-edge-2.3.192 lib/sass/tree/variable_node.rb