1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
module Sass
module Tree
# A static node that is the root node of the Sass document.
class RootNode < Node
# The Sass template from which this node was created
#
# @param template [String]
attr_reader :template
# @param template [String] The Sass template from which this node was created
def initialize(template)
super()
@template = template
end
# Runs the dynamic Sass code and computes the CSS for the tree.
#
# @return [String] The compiled CSS.
def render
css_tree.css
end
# Runs the dynamic Sass code and computes the CSS for the tree, along with
# the sourcemap.
#
# @return [(String, Sass::Source::Map)] The compiled CSS, as well as
# the source map. @see #render
def render_with_sourcemap
css_tree.css_with_sourcemap
end
private
def css_tree
Visitors::CheckNesting.visit(self)
result = Visitors::Perform.visit(self)
Visitors::CheckNesting.visit(result) # Check again to validate mixins
result, extends = Visitors::Cssize.visit(result)
Visitors::Extend.visit(result, extends)
result
end
end
end
end
|