Class | Sass::Script::Node
In: | lib/sass/script/node.rb
Parent: | Object

The abstract superclass for SassScript parse tree nodes.

Use \{perform} to evaluate a parse tree.

### Methods

_perform children context= dasherize new options= perform to_sass

### Attributes

context | [R] | The context in which this node was parsed, which determines how some operations are performed. Can be `:equals`, which means it‘s part of a `$var = val` or `prop = val` assignment, or `:default`, which means it‘s anywhere else (including `$var: val` and `prop: val` assignments, `#{}`-interpolations, and other script contexts such as `@if` conditions). @return [Symbol]
line | [RW] | The line of the document on which this node appeared. @return [Fixnum]
options | [R] | The options hash for this node. @return [{Symbol => Object}]

### Public Class methods

new()

Creates a new script node.

[Source]

        # File lib/sass/script/node.rb, line 49
    49:     def initialize
    50:       @context = :default
    51:     end

### Public Instance methods

children()

Returns all child nodes of this node.

@return [Array<Node>]

[Source]

        # File lib/sass/script/node.rb, line 70
    70:     def children
    71:       raise NotImplementedError.new("All subclasses of Sass::Script::Node must override #children.")
    72:     end

context=(context)

Sets the context for this node, as well as for all child nodes.

@param context [Symbol] @see context

[Source]

        # File lib/sass/script/node.rb, line 43
    43:     def context=(context)
    44:       @context = context
    45:       children.each {|c| c.context = context}
    46:     end

options=(options)

Sets the options hash for this node, as well as for all child nodes. See {file:SASS_REFERENCE.md#sass_options the Sass options documentation}.

@param options [{Symbol => Object}] The options

[Source]

        # File lib/sass/script/node.rb, line 33
    33:     def options=(options)
    34:       @options = options
    35:       children.each {|c| c.options = options}
    36:     end

perform(environment)

Evaluates the node.

\{perform} shouldn‘t be overridden directly; instead, override \{_perform}.

@param environment [Sass::Environment] The environment in which to evaluate the SassScript @return [Literal] The SassScript object that is the value of the SassScript

[Source]

        # File lib/sass/script/node.rb, line 60
    60:     def perform(environment)
    61:       _perform(environment)
    62:     rescue Sass::SyntaxError => e
    63:       e.modify_backtrace(:line => line)
    64:       raise e
    65:     end

to_sass(opts = {})

Returns the text of this SassScript expression.

@return [String]

[Source]

        # File lib/sass/script/node.rb, line 77
    77:     def to_sass(opts = {})
    78:       raise NotImplementedError.new("All subclasses of Sass::Script::Node must override #to_sass.")
    79:     end

### Protected Instance methods

_perform(environment)

Evaluates this node.

@param environment [Sass::Environment] The environment in which to evaluate the SassScript @return [Literal] The SassScript object that is the value of the SassScript @see perform

[Source]

        # File lib/sass/script/node.rb, line 97
    97:     def _perform(environment)
    98:       raise NotImplementedError.new("All subclasses of Sass::Script::Node must override #_perform.")
    99:     end

dasherize(s, opts)

Converts underscores to dashes if the :dasherize option is set.

[Source]

        # File lib/sass/script/node.rb, line 84
    84:     def dasherize(s, opts)
    85:       if opts[:dasherize]
    86:         s.gsub(/_/,'-')
    87:       else
    88:         s
    89:       end
    90:     end

[Validate]