Class | Sass::Engine |
In: |
lib/sass/engine.rb
|
Parent: | Object |
This class handles the parsing and compilation of the Sass template. Example usage:
template = File.load('stylesheets/sassy.sass') sass_engine = Sass::Engine.new(template) output = sass_engine.render puts output
PROPERTY_CHAR | = | ?: | The character that begins a CSS property. | |
SCRIPT_CHAR | = | ?= | The character that designates that a property should be assigned to a SassScript expression. | |
COMMENT_CHAR | = | ?/ | The character that designates the beginning of a comment, either Sass or CSS. | |
SASS_COMMENT_CHAR | = | ?/ | The character that follows the general COMMENT_CHAR and designates a Sass comment, which is not output as a CSS comment. | |
CSS_COMMENT_CHAR | = | ?* | The character that follows the general COMMENT_CHAR and designates a CSS comment, which is embedded in the CSS document. | |
DIRECTIVE_CHAR | = | ?@ | The character used to denote a compiler directive. | |
ESCAPE_CHAR | = | ?\\ | Designates a non-parsed rule. | |
MIXIN_DEFINITION_CHAR | = | ?= | Designates block as mixin definition rather than CSS rules to output | |
MIXIN_INCLUDE_CHAR | = | ?+ | Includes named mixin declared using MIXIN_DEFINITION_CHAR | |
PROPERTY_NEW_MATCHER | = | /^[^\s:"\[]+\s*[=:](\s|$)/ | The regex that matches properties of the form `name: prop`. | |
PROPERTY_NEW | = | /^([^\s=:"]+)\s*(=|:)(?:\s+|$)(.*)/ | The regex that matches and extracts data from properties of the form `name: prop`. | |
PROPERTY_OLD | = | /^:([^\s=:"]+)\s*(=?)(?:\s+|$)(.*)/ | The regex that matches and extracts data from properties of the form `:name prop`. | |
DEFAULT_OPTIONS | = | { :style => :nested, :load_paths => ['.'], :cache => true, :cache_location => './.sass-cache', :syntax => :sass, }.freeze | The default options for Sass::Engine. @api public | |
MIXIN_DEF_RE | = | /^(?:=|@mixin)\s*(#{Sass::SCSS::RX::IDENT})(.*)$/ | ||
MIXIN_INCLUDE_RE | = | /^(?:\+|@include)\s*(#{Sass::SCSS::RX::IDENT})(.*)$/ |
@param template [String] The Sass template. @param options [{Symbol => Object}] An options hash;
see {file:SASS_REFERENCE.md#sass_options the Sass options documentation}
# File lib/sass/engine.rb, line 138 138: def initialize(template, options={}) 139: @options = DEFAULT_OPTIONS.merge(options.reject {|k, v| v.nil?}) 140: @template = template 141: 142: # Support both, because the docs said one and the other actually worked 143: # for quite a long time. 144: @options[:line_comments] ||= @options[:line_numbers] 145: 146: # Backwards compatibility 147: @options[:property_syntax] ||= @options[:attribute_syntax] 148: case @options[:property_syntax] 149: when :alternate; @options[:property_syntax] = :new 150: when :normal; @options[:property_syntax] = :old 151: end 152: end
Render the template to CSS.
@return [String] The CSS @raise [Sass::SyntaxError] if there‘s an error in the document
# File lib/sass/engine.rb, line 158 158: def render 159: return _to_tree.render unless @options[:quiet] 160: Haml::Util.silence_haml_warnings {_to_tree.render} 161: end
Parses the document into its parse tree.
@return [Sass::Tree::Node] The root of the parse tree. @raise [Sass::SyntaxError] if there‘s an error in the document
# File lib/sass/engine.rb, line 168 168: def to_tree 169: return _to_tree unless @options[:quiet] 170: Haml::Util.silence_haml_warnings {_to_tree} 171: end