Class: Sass::Script::Tree::Node
- Inherits:
-
Object
- Object
- Sass::Script::Tree::Node
- Defined in:
- 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
Instance Attribute Summary collapse
-
#filename ⇒ String
The file name of the document on which this node appeared.
-
#line ⇒ Integer
The line of the document on which this node appeared.
-
#options ⇒ {Symbol => Object}
The options hash for this node.
-
#source_range ⇒ Sass::Source::Range
The source range in the document on which this node appeared.
Instance Method Summary collapse
-
#_perform(environment) ⇒ Sass::Script::Value
protected
Evaluates this node.
-
#children ⇒ Array<Node>
Returns all child nodes of this node.
-
#dasherize(s, opts)
protected
Converts underscores to dashes if the :dasherize option is set.
-
#deep_copy ⇒ Node
Returns a deep clone of this node.
-
#force_division!
Forces any division operations with number literals in this expression to do real division, rather than returning strings.
-
#opts(value) ⇒ Sass::Script::Value
protected
Sets the #options field on the given value and returns it.
-
#perform(environment) ⇒ Sass::Script::Value
Evaluates the node.
-
#to_sass(opts = {}) ⇒ String
Returns the text of this SassScript expression.
Instance Attribute Details
#filename ⇒ String
The file name of the document on which this node appeared.
24 25 26 |
# File 'lib/sass/script/tree/node.rb', line 24
def filename
@filename
end
|
#line ⇒ Integer
The line of the document on which this node appeared.
14 15 16 |
# File 'lib/sass/script/tree/node.rb', line 14
def line
@line
end
|
#options ⇒ {Symbol => Object}
The options hash for this node.
9 10 11 |
# File 'lib/sass/script/tree/node.rb', line 9
def options
@options
end
|
#source_range ⇒ Sass::Source::Range
The source range in the document on which this node appeared.
19 20 21 |
# File 'lib/sass/script/tree/node.rb', line 19
def source_range
@source_range
end
|
Instance Method Details
#_perform(environment) ⇒ Sass::Script::Value (protected)
106 107 108 |
# File 'lib/sass/script/tree/node.rb', line 106
def _perform(environment)
Sass::Util.abstract(self)
end
|
#children ⇒ Array<Node>
Returns all child nodes of this node.
59 60 61 |
# File 'lib/sass/script/tree/node.rb', line 59
def children
Sass::Util.abstract(self)
end
|
#dasherize(s, opts) (protected)
Converts underscores to dashes if the :dasherize option is set.
91 92 93 94 95 96 97 |
# File 'lib/sass/script/tree/node.rb', line 91
def dasherize(s, opts)
if opts[:dasherize]
s.tr('_', '-')
else
s
end
end
|
#deep_copy ⇒ Node
Returns a deep clone of this node. The child nodes are cloned, but options are not.
78 79 80 |
# File 'lib/sass/script/tree/node.rb', line 78
def deep_copy
Sass::Util.abstract(self)
end
|
#force_division!
Forces any division operations with number literals in this expression to do real division, rather than returning strings.
84 85 86 |
# File 'lib/sass/script/tree/node.rb', line 84
def force_division!
children.each {|c| c.force_division!}
end
|
#opts(value) ⇒ Sass::Script::Value (protected)
Sets the #options field on the given value and returns it.
114 115 116 117 |
# File 'lib/sass/script/tree/node.rb', line 114
def opts(value)
value.options = options
value
end
|
#perform(environment) ⇒ Sass::Script::Value
49 50 51 52 53 54 |
# File '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.
70 71 72 |
# File 'lib/sass/script/tree/node.rb', line 70
def to_sass(opts = {})
Sass::Util.abstract(self)
end
|