Class: Sass::Script::Tree::Node

Inherits:
Object
  • Object
show all
Defined in:
.ruby-sass/lib/sass/script/tree/node.rb

Overview

The abstract superclass for SassScript parse tree nodes.

Use #perform to evaluate a parse tree.

Direct Known Subclasses

Funcall, Interpolation, ListLiteral, Literal, MapLiteral, Operation, Selector, StringInterpolation, UnaryOperation, Variable

Direct Known Subclasses

Funcall, Interpolation, ListLiteral, Literal, MapLiteral, Operation, Selector, StringInterpolation, UnaryOperation, Variable

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Instance Attribute Details

#filenameString

The file name of the document on which this node appeared.

Returns:

  • (String)


24
25
26
# File '.ruby-sass/lib/sass/script/tree/node.rb', line 24

def filename
  @filename
end

#lineInteger

The line of the document on which this node appeared.

Returns:

  • (Integer)


14
15
16
# File '.ruby-sass/lib/sass/script/tree/node.rb', line 14

def line
  @line
end

#options{Symbol => Object}

The options hash for this node.

Returns:

  • ({Symbol => Object})


9
10
11
# File '.ruby-sass/lib/sass/script/tree/node.rb', line 9

def options
  @options
end

#source_rangeSass::Source::Range

The source range in the document on which this node appeared.

Returns:



19
20
21
# File '.ruby-sass/lib/sass/script/tree/node.rb', line 19

def source_range
  @source_range
end

Instance Method Details

#childrenArray<Node>

Returns all child nodes of this node.

Returns:



59
60
61
# File '.ruby-sass/lib/sass/script/tree/node.rb', line 59

def children
  Sass::Util.abstract(self)
end

#deep_copyNode

Returns a deep clone of this node. The child nodes are cloned, but options are not.

Returns:



78
79
80
# File '.ruby-sass/lib/sass/script/tree/node.rb', line 78

def deep_copy
  Sass::Util.abstract(self)
end

#force_division!Object

Forces any division operations with number literals in this expression to do real division, rather than returning strings.



84
85
86
# File '.ruby-sass/lib/sass/script/tree/node.rb', line 84

def force_division!
  children.each {|c| c.force_division!}
end

#perform(environment) ⇒ Sass::Script::Value

Evaluates the node.

#perform shouldn't be overridden directly; instead, override #_perform.

Parameters:

  • environment (Sass::Environment)

    The environment in which to evaluate the SassScript

Returns:



49
50
51
52
53
54
# File '.ruby-sass/lib/sass/script/tree/node.rb', line 49

def perform(environment)
  _perform(environment)
rescue Sass::SyntaxError => e
  e.modify_backtrace(:line => line)
  raise e
end

#to_sass(opts = {}) ⇒ String

Returns the text of this SassScript expression.

Returns:

  • (String)


70
71
72
# File '.ruby-sass/lib/sass/script/tree/node.rb', line 70

def to_sass(opts = {})
  Sass::Util.abstract(self)
end