blob: 1f02cbd0959e46d0661fb51b4291464b46b439aa [file] [log] [blame]
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